home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Merciful 1
/
Merciful - Disc 1.iso
/
software
/
m
/
music_x_ii
/
music_x.txt
next >
Wrap
Text File
|
1995-10-14
|
235KB
|
5,267 lines
MUSIC X
NOTE: If the illustrations look odd, its because this document was full
of control codes, so dont blame me!
SEQUENCER PAGE
OVERVIEW
The Sequencer Page can be considered the primary page in Music-X;
Music-X's primary job is to be a MIDI sequencer, and the Sequencer Page
contains the features that allow it to do that.
The basic idea behind a MIDI sequencer is to provide a way for a
composer to record instrument parts one by one, edit them to
satisfaction, and play them back together on MIDI instruments. This is
analogous to a multi-track tape recorder, but it goes far beyond the
analogy.
There are many different approaches to assembling a piece of music
with a sequencer. Some people prefer to record each instrument on its
own sequence "top to bottom", that is, for the whole length of the song.
Other people like to overdub all the instruments onto a single sequence
the length of one section, and then append various sections to make the
song. Music-X was written to accommodate everybody. A sequence may be
as long as the whole piece (up to 4096 measures), or as short as one
measure, and may contain the data for one instrument or all the
instruments. A sequence may also contain events that play other
sequences. Up to twenty sequences may be playing at any one time, and
there are 250 empty sequences to work with. By combining these
attributes, any modality for composing music on a sequencer can be
emulated. Some of the various modalities are covered in more detail, in
the Advanced Users chapter.
The rest of this chapter describes, in detail, the functions
available in the Sequencer Page, roughly in the order that they are
found on the screen, left to right, top to bottom.
TITLE BAR
The Title Bar is found along the top of all pages in Music-X to
remind one where one is. "MUSIC-X" is always written at the left end
of the Title Bar. At the right end, the title of the current page is
written; in the Sequencer Page, this will be "SEQUENCER". In the
Sequencer Page, the name of the current performance will appear
written after the abbreviation PERF:, in the middle of the title
bar. For example, "Perf:MySong.Perf". This name changes when a new
performance is loaded or when the current performance is saved using a
new and different name.
The Title Bar becomes the Menu Bar whenever the right mouse button
is pressed. The Menu Bar contains the titles of menus that can be
accessed by moving the mouse pointer to the menu title as you continue to
hold the right mouse button down.
(See Sequencer Page / File Menu / Load Performance)
(See Sequencer Page / File Menu / Save Performance)
MODEMENU
The Mode menu is found in each of the four main pages in Music-X.
By choosing the four pages listed in the Mode menu, one moves about in
Music-X. Additional pages are accessible only from within the main
pages, using other menus or screen controls.
Below are descriptions of the menu items found in the Mode menu,
including short descriptions of the main pages and any ancillary pages
accessible.
ABOUT MUSIC-X
This menu item brings up a window that shows the Author of Music-X,
and the author and title of the current performance in memory. If you
have previously set your song's title and author, they will appear in
this window. Clicking the left mouse button, or pressing any key, closes
this window.
(See Sequencer Page / File Menu / Set Author Name)
SUSPEND
(RightAmiga-"." from the keyboard)
*************************************
* Music-X Operation Suspended. *
* Serial Port is now available. *
* ************** *
* * RESUME * *
* ************** *
*************************************
Illustration 6.2: Suspend Prompt.
MIDI uses serial port. To maintain data integrity, Music-X takes
over the serial port and locks out other programmes. If you need to
temporarily use the serial port for another application (for
instance, a telecommunications programme), you can suspend Music-X by
choosing this menu item. As long as this window is showing, Music-X is
suspended. When you are finished, click RESUME or press the RETURN
key to resume the Music-X session.
SEQUENCER
(RightAmiga-"S" from the keyboard)
Choosing this menu item will get you back to the Sequencer Page from
any of the other three main pages where the Mode menu is available
(Filters Page, Amiga Samples Page, Librarian Page). The Sequencer
Page is used to record, edit, and play musical sequences. The Bar
Editor and Event Editor Pages are accessible from this page as well.
SET FILTERS
(RightAmiga-"F" from the keyboard)
This is how you get to the Filters Page, from which you may also
access the Keymap Editor Page. These pages are used to reroute or
reinterpret incoming MIDI data.
AMIGA SAMPLES
(RightAmiga-"A" from the keyboard)
This is how you get to the Amiga Samples Page, where you load,
manipulate, and save sounds for the internal Amiga voices.
LIBRARIAN
(RightAmiga-"L" from the keyboard)
This is how you get to the Librarian Page. From there you can send
and receive system-exclusive patch data for any synthesizers or MIDI
devices that you have connected to your system.
QUIT
(RightAmiga-"Q" from the keyboard)
Choosing this menu item will quit Misic-X and return to the Amiga
Workbench. Be sure to save your music before quitting if needed.
(See Sequencer Page / File Menu / Save Performance)
A safety prompt will appear to prevent you from leaving the
programme by accident. If you change your mind, click NO and you will be
safely returned to Music-X. If you indeed want to quit, click YES or
press RETURN key. Music-X will graciously return the memory to your
Amiga's Operating System.
************************************
* Do you really want to *
* QUIT Music-X ? *
* ******** ******** *
* * NO * * YES * *
* ******** ******** *
************************************
Illustration 6.3: Quit Safety Prompt
FILEMENU
A File menu is found in every page in Music-X. Each page can load
and save disk files relevant to its particular function. The Sequencer
Page is unique, however, in that it can also Load, Save, and Merge
Performance files. A single Performance file can contain all the files
as would be saved by each page individually. These component files in a
Performance file are called "subfiles". A list of the various subfile
types is found below under the description of the SAVE PERFORMANCE
function.
When you boot Music-X by double clicking on its icon in the
Workbench, Music-X looks on the Music-X Programme disk for a performance
file called "Default.Perf". It then loads this performance file and
finishes booting itself. By rewriting the default performance file, you
can have Music-X boot in any configuration you want.
You can also boot Music-X by double clicking on the icon of one of
its performance files. In this case, the chosen performance file is
loaded instead of the default performance file.
Following are descriptions of the items found in the Sequencer Page
/ File Menu.
MERGE PERFORMANCE
Choosing this menu item loads a previously saved performance file
into memory from disk, without first erasing the sequences currently in
memory. Sequences being merged in from the new performance file will
overwrite only those current sequences occupying the list positions that
they use. (This is similar to the "Merge to Front" function found
commonly in paint programmes). Any old sequences not rewritten by the
loading of the new performance file will still be in memory after the
merge. Any other subfiles (Libraries, Keymaps, etc) in the new
performance file will be loaded during the merge as well.
If you need more control over the transporting of sequences between
performance files, then Load or Save the sequences individually.
(See Sequencer Page / File Menu / Load Sequence (below))
(See Bar Editor / File Menu / Load)
(See Bar Editor / File Menu / Save_
LOAD PERFORMANCE
(RightAmiga-"P" from the keyboard)
This menu item is used to Load a previously saved performance file
into memory from disk. Any subfiles, loaded with the performance file,
overwrite the relevant data in Music-X. That is, if Keymap subfiles are
present in the Performance file, they overwrite the current Keymaps in
Music-X. Or, if Filter subfiles are present in the Performance file,
they overwrite the current Filters in Music-X. Conversly, if a subfile
is not present in the performance file, the relevant data remains
unaffected. The two exceptions are with Sequence subfiles and Library
subfiles. Unlike MERGE PERFORMANCE, LOAD PERFORMANCE erases all the old
sequences and libraries in memory before loading the new performance
file. Each time you load a new performance file, you should go to
Librarian Page and check if any libraries were loaded with the
performance, and if so, send them to the synthesizers in your system.
(See "Save Performance" below for descriptions of the subfile
types).
After you chose LOAD PERFORMANCE, the file requester window will
appear. Use this requester to locate the performance file you wish to
load.
(See File Requester chapter)
If the Amiga runs out of memory loading a big performance file,
Music-X will put up a "Not Enough Memory" prompt. If this happens, close
any other programmes currently in the Amiga's memory, and try again.
*Note: It is possible to load music written on other music
programmes by first converting their files to Music-X performance files.
Programmes are provided on the Music-X Utilities disk to do this.
(See Advanced Users / File Conversions)
SAVE PERFORMANCE
(RightAmiga-"V" from the keyboard)
A performance file is like a "snapshot" of the status of all the
various Music-X pages. SAVE PERFORMANCE lets you save all the parameters
in one composite file called a performance file.
*Note: If you want to show off multiasking, try saving a
performance while it is playing back.
Choosing SAVE PERFORMANCE first calls the Subfile window, where you
set which subfiles are to be included in the performance file. A list
of subfile types is given with a switch for each. The default action is
to save everything; all the switches are on and highlighted in light
blue.
*Note: If a subfile is NOT included in a performance-file save,
then it will not be reloaded later and will not overwrite any related
parameters at that time.
After setting the subfile switches, clikc OK to close and Subfile
window and continue to the SAVE PERFORMANCE File Requester, or press "O"
for (O)K for "Y" for (Y)es. Or, if you decide against saving the
performance file after all, click on CANCEL, or press "C" for (C)ANCEL or
"N" for (N)o.
Once you reach the File Requester, use it to locate the correct disk
and directory. Then type in the name of your new performance file in
the FILE: text box, and click OK to save the performance. Music-X will
also create and save an icon for the performance file in the same
directory as the performance file. Performance file icons look like
music cassettes. The Default.perf icon in the Music-X programme disk is
an example of a performance icon.
(See File Requester chapter)
*Note: Remember to back up your data disk at the end of the
sequencing session.
***********************************
* Save Performance *
***********************************
* ((())) Sequences *
* ((())) Libraries *
* ((())) Filter Settings *
* ((())) Keymaps *
* ((())) Output Channels *
* ((())) Sync Settings *
* ((())) Time Parameters *
* ((())) Sample Data *
***********************************
* (OK) (CANCEL) *
***********************************
Illustration 6.4: Subfile switches
Following are descriptions of the subfile switches.
SEQUENCES
Any non-empty sequences are saved with the performance file if this
switch is on. YOu could conceivably choose not to save sequences, if you
were creating some sort of blank, template-type performance file with all
the other parameters set up in a particular way; later, when reloading
the template, any sequences in memory would not be erased, but the rest
of the parameters would be reset.
*Note: Individual Sequence files may be loaded and saved from the
Editor Pages.
(See Bar Editor / File Menu / Load)
(See Bar Editor / File Menu / Save)
The current Song Title and Author, as set with the SET AUTHOR NAME
option in the File menu, are also saved in the performance file when the
SEQUENCES switch is on.
(See Sequencer Page / File Menu / Set Author Name)
LIBRARIES
This subfile switch saves all patch libraries currently in memory.
(Up to l0 libraries can be resident in memory at once). Later, when you
load the performance file, the patches will be available to send to the
synths from the Librarian Page. This allows repreduction of the specific
external sounds you were using when you first created and saved your
performance.
*Note: Individual Library files may be loaded and saved from the
Librarian Page.
(See Librarian Page / File Menu / Load)
(See Librarian Page / File Menu / Save)
LIBRARIES
This subfile switch saves all patch libraries currently in memory.
(Up to l0 libraries can be resident in memory at once). Later, when you
load the performance file, the patches will be available to send to the
synths from the Librarian Page. This allows reproduction of the specific
external sounds you were using when you first created and saved your
performance.
*Note: Individual Library files may be loaded and saved from the
Librarian Page.
(See Librarian Page / File Menu / Load)
(See Librarian Page / File Menu / Save)
FILTER SETTINGS
This subfile switch causes the current settings for all l6 filters
in the Filters Page to be saved with the performance file. Settings
include the REMAP and ENABLE switch states, and the continuous slider
positions. Keymaps are not included; they have their own switch (see
below).
*Note: Individual Filter files may be loaded and saved from the
Filters Page.
(See Filters Page / File Menu / Load)
(See Filters Page / File Menu / Save)
KEYMAPS
This subfile switch causes the four Keymaps, created in the Keymap
Editor Page and used by the Filters Page, to be saved with the
performance file.
*Note: Individual Keymap files may be loaded and saved from the
Keymap Editor Page.
(See Keymap Editor / File Menu / Load)
(See Keymap Editor / File Menu / Save)
OUTPUT CHANNELS
When this switch is on, all the settings of the Sequencer Page /
Sync Menu are saved in your performance file. This is handy if you use a
drum machine or are doing film or video scoring. At reload, the old sync
settings will be duplicated eliminating the need to manually reconfigure
your system.
The Audio Filter setting, as set in the Samples Page, is also saved
in the performance file when the SYNC SETTINGS switch is on.
(See Samples Page / Options Menu / Audio Filter)
TIME PARAMETERS
This switch saves the current master Tempo setting, the current
master Time Signature setting, and the locations stores in the CUE
buttons.
(See Sequencer Page / Tempo Window)
(See Sequencer Page / Time Signature Window)
(See Sequencer Page / Tape Transport Window / CUE Buttons)
SAMPLE DATA
When this switch is on, any samples currently in memory will be
saved along with your performance file.
Sample data can use lots of disk memory. If you have a standard set
of samples that you always use, then there is no need to keep resaving
them with your performance files. You may wish instead to create a
"sample template" performance file by first loading your favorite samples
individually using the Samples Page, and then saving a performance file
with all of the subfile switches turned off except SAMPLE DATA. Then you
would only need to load that one performance file once, before playing
any of the songs that use those samples.
*Note: Individual Sample files may be loaded and saved from the
Sample Page.
(See Samples Page / File Menu / Load)
(See Samples Page / File Menu / Save)
LOAD SEQUENCE
This item in the File menu is used to Load a sequence file from disk
into the current sequence (highlighted in the sequence list), overwriting
its previous contents.
After you choose LOAD SEQUENCE, the File Requester will appear. Use
it to locate the file you want and click OK to load the sequence.
(See File Requester Chapter)
*Note: SAVE SEQUENCE has not been made available from the Sequencer
Page / File Menu, to prevent the accidental saving of a single sequence
when the intention was to save all sequences in a Performance file.
Individual sequences can be Loaded and Saved from within the Bar Editor
or Event Editor.
(See Bar Editor / File Menu / Load)
(See Bar Editor / File Menu / Save)
SET AUTHOR NAME
Here is where you set the Title and Author of the current
performance in memory. These settings will appear in the ABOUT MUSIC-X
box, and are automatically saved with any performance file.
(See Sequencer Page / Mode Menu / About Music-X)
**************************************************************
* (OK) * Song Title: * Peanut Butter Jamboree *
* * Author: * Sticky Vicky *
**************************************************************
Illustration 6.5: Set Author Name Window.
When you choose this menu item, the above window appears showing the
current settings. Here is how to change those settings.
() Click the SONG TITLE text box, then use the Amiga's keyboard to
type in the name.
() Click in the AUTHOR text box, then use the Amiga's keyboard to
type in the name.
() When done, click OK.
OPTIONS MENU
The Options menu provides extra functions for the Sequencer Page.
The Output Channeliser is accessed from here as well as some global
sequence editing functions like MERGE and EXTRACT.
Following are descriptions of the items available in the Sequencer
Page / Options Menu.
OUTPUT CHANNELS...
This menu item calls the CHANNELISER window.
What do you do if you load up a friend's song, in which all the drum
parts were recorded on MIDI channel 2, but uh-oh... your drum module ONLY
receives on channel l0.
You can either go down the list and edit the MIDI channels in all
the sequences that contain drum parts, one by one, or, you can redirect
your output channels using the Channeliser.
The Channeliser globally translates all MIDI channel data during
playback only. For each original MIDI channel there is a translated MIDI
channel. The original data is left intact. It is safe to experiment.
The FROM column shows all the possible original MIDI channels (the
channels your data is on). The TO column shows the channels you would
like each of these original channels to be translated to. The SET column
is clicked on to change the TO column; it is merely a list of the numbers
l-l6 provided for speed.
Example: To switch those drum channels, click on "02" in the FROM
column. Click on "l0" in the SET column. Notice the TO column now
shows "10". Now all the drum parts stored in sequences on MIDI channel 2
will actually be played on MIDI channel l0.
******************************
* CHANNELIZER *
******************************
* From To ³ Set *
******************************
* 0l -- > 0l ³ 0l *
*(02 -- > l0 ) ³ 02 *
* 03 -- > 03 ³ 03 *
* 04 -- > 04 ³ 04 *
* 05 -- > 05 ³ 05 *
* 06 -- > 06 ³ 06 *
* 07 -- > 07 ³ 07 *
* 08 -- > 08 ³ 08 *
* 09 -- > 09 ³ 09 *
* l0 -- > l0 ³ ( l0 )*
* ll -- > ll ³ ll *
* 12 -- > 12 ³ 12 *
* 13 -- > 13 ³ 13 *
* 14 -- > 14 ³ 14 *
* 15 -- > 15 ³ 15 *
* 16 -- > 16 ³ 16 *
******************************
* (OK) (CANCEL) *
******************************
Illustration 6.6: Output Channelizer
*Note: Try switching the Channelizer while Music-X is playing.
This works, and might give you a better indication of what it is doing.
What is really going on: All Music-X data is recorded
and stored with the MIDI-Channel "nybble" intact. Data
is passed through the channelizer on its way out. The
channelizer uses the channel nybble to index a lookup
table and substitutes the number found there for the
original channel. This window allows you to edit the
table.
*Note: Only notes played back from Music-X sequences are
rechannelized. The channelizer does not affect incoming notes played on
the mother keyboard. Use the Filters Page to remap incoming MIDI data.
*Note: The Channelizer settings can be saved with your performance
file.
(See Sequencer Page / File Menu / Save Performance)
SET PUNCH-IN
(Function key Fl from the keyboard)
Choosing this menu item sets the automatic Punch-In point to
whatever the current clock setting is. First set the musical clock to
the desired Measure, Beat and Subclock. Then choose this menu item.
This can also be done "on the fly" when in PLAY or RECORD mode by tapping
the Fl key. Punch- In is explained in more detail in the section on
recording.
(See Sequencer Page / Transport Window / RECORD)
SET PUNCH-OUT
(Function F2 from the keyboard)
Choosing this menu item sets the automatic Punch-Out point to
whatever the current clock setting is. First set the musical clock to
the desired Measure, Beat, and Subclock. Then choose this menu item.
This can also be done "on the fly" when in PLAY or RECORD mode by tapping
the F2 key.
COPY SEQUENCE
(RightAmiga-"C" from the keyboard)
You may wish to keep several versions of a sequence while perfecting
it. COPY Sequence can be used to create the extra versions.
Choosing this menu item will copy all the data from the current
sequence (source) to any other sequence in the list (destination). The
source sequence remains unaffected. Anything previously in the
destination sequence is, of course, lost.
The source sequence is always the one highlighted before you choose
COPY SEQUENCE.
Choosing COPY SEQUENCE calls the SELECT SEQUENCE TO COPY TO window.
Use this window to define the destination sequence by scrolling through
the sequence list with the CursorUp and CursorDown keys or by dragging
the scroll bar, and clicking on an empty or expendable sequence. Then
click OK, or press "O" or "Y" to effect the copy. Or, click CANCEL (or
press "C" for (C)ANCEL or "N" for (N)o) to safely exit this function with
no changes made.
The COPY SEQUENCE option and the next two options in the Options
menu, MERGE SEQUENCE and EXTRACT SEQUENCE, use the "Edit Buffer" as a
temporary working area. The Edit Buffer is also used to record and edit
sequences. If the Edit Buffer is not empty when you choose any of these
options, a safety prompt will appear to prevent accidental erasure of
sequence data.
*****************************************
* WARNING: The Edit Buffer currently *
* contains unsaved data. *
* ********* ********* ********* *
* *CANCEL * *DISCARD* * STORE * *
* ********* ********* ********* *
*****************************************
Illustration 6.7: Buffer unsaved warning.
The prompt has three choices. Clicking CANCEL will abort whichever
option you were about to use and return you to the sequencer page.
Clicking DISCARD will lose the current contents of the Edit Buffer and
continue with the option as intended. Clicking STORE will open a
sequence selector window titled STORE TO WHERE?, offering a list of the
250 possible sequences in memory. Use the window to choose a sequence
and click OK to store the current contents of the Edit Buffer to that
sequence, clearing the Edit Buffer for use. After the Edit Buffer is
cleared, you can continue with the originally chosen option.
MERGE SEQUENCE
(RightAmiga-"M" from the keyboard)
Use this menu item to merge the data from the current sequence
(source) into any other sequence in the list (destination). The source
sequence remains unaffected (unless merging to itself). The destination
sequence will contain all its old data plus the data from the source
sequence. Merging a sequence to itself will create a MIDI doubling of
all the notes in the sequence.
The source sequence is always the one highlighted before you choose
MERGE SEQUENCE.
Choosing MERGE SEQUENCE calls the SELECT SEQUENCE TO MERGE TO
window, showing a sequence list. Scroll through the list with the
CursorUp and CursorDown keys or by dragging the scroll bar with the
mouse. Choose the destination sequence by clicking on an empty or
expendable sequence to highlight it. Then click OK to effect the merge.
Or click CANCEL (or press "C" for (C)ANCEL or "N" for (N)o) to safely
exit this function with no changes made.
Once the merge is initiated Music-X will temporarily ignore the
mouse, to help speed up the merging process. The amount of time for the
merge to complete depends on the sizes of the sequences being merged.
When Music-X is done merging, it will put up a prompt saying "Merge
Finished". Click OK button to close the prompt and return to the
Sequencer Page.
EXTRACT SEQUENCE
Think of this as "Extract a new sequence from an old sequence". You
essentially extract a copy of just the good stuff without affecting the
original.
What Extract does is selectively copy into the Edit Buffer chosen
classes of events from the contents of the current sequence without
altering that sequence. You must then manually store the buffer
containing the extracted events to a new sequence (using the Sequencer
Page / STORE button).
The source sequence is the one highlighted before you call EXTRACT
SEQUENCE. The destination sequence is actually the Edit Buffer until you
store it to a spare sequence.
There are three basic event classes that can be Extracted: Channel
events, System Exclusive data, and Music-X events.
Channel events are thos MIDI events that control instruments on a
particular MIDI channel: Notes, Channel After Touch (CAT), Poly-
phonic After Touch (PAT), Control Changes (CTL), Programme Changes
(PGM), and Pitch Bend (PBEN).
System Exclusive data varies with different manufacturers and is
only understood by the instrument it is intended for.
Music-X events are events that internally control the sequencer in
some way: Play Sequence (PSEQ), Mute Sequence (MSEQ), Solo Sequence
(SSEQ), Mute Tract (MTRK), Solo Track (STRK), Set Repeats (REPT), Set End
(END), Change Keymap (KMAP), Tempo Change (TEMPO), Time Signature Change
(TSIG), and Stop Sequencer (STOP).
*Note: Event types are described in detail in the Editor chapters.
(See Bar Editor / Event types)
(See Event Editor / Event types)
After you choose EXTRACT SEQUENCE a window appears titled EXTRACT
WHICH CHANNELS? All the channels are listed, as well as the two classes
of non-Channel events: Music-X events, and Systems Exclusive events.
Click on the channel numbers or the other event types (they will appear
highlighted in white) to choose which will be copied into the Edit Buffer
(clicking them again turns them off again).
***************************
* Extract Which Channels? *
***************************
* 01 02 03 04 05 06 07 08 *
* 09 l0 ll l2 l3 4l l5 l6 *
* SYSX Events *
* Music-X Events *
***************************
* (OK) (CANCEL) *
***************************
Illustration 6.8: Extract Window.
If any of the channel numbers are switched on, then Channel events
on the chosen channel(s) will be copied into the Edit Buffer.
If the SYSX EVENTS switch is on, then any Music-X events present in
the source sequence will be copied into the Edit Buffer.
How to Extract:
Say we had a composite sequence called "Bass and Drums" containing
two instruments. The drums are on MIDI channel l and the bass is on
MIDI channel 2. Here is how we would separate the instruments into their
own sequences:
- From the Sequencer Page, find the "Bass and Drums" sequence in the
sequence list and highlight it. This is our source sequence for the
Extract function.
- Choose EXTRACT SEQUENCE from the Options menu. The EXTRACT WHICH
CHANNELS? window will appear.
- When the requester appears, choose to extract data on MIDI channel
l by clicking "0l". (It should become highlighted). Make sure no other
MIDI channels are highlighted; we only want the drum data.
- Click OK to start the extraction.
*Note: If the Edit Buffer was no empty when you clicked OK, a
safety prompt will appear so you can decide what to do with the data
previously in the buffer. Clicking DISCARD in the safety prompt will
lose what was in the buffer and let you proceed.
- A prompt will appear when the extraction is finished. Click OK to
proceed.
- We now have a copy of the drums in the Edit Buffer. Choose an
empty sequence by highlighting it in the sequence list and click STORE to
write the Edit Buffer into the empty sequence. The new sequence now
contains the drum part. Title it "Drums alone", or something, by
clicking in the SEQUENCE NAME field and typing in the name.
We have extracted a copy of just the drums and stored it to a new
location. Now we will do the same thing for the bass line:
- Select the "Bass and Drums" sequence again and call EXTRACT
SEQUENCE.
- This time deselect MIDI channel l (drums), by clicking "0l" to
turn it back off, and select MIDI channel 2 (bass) by clicking on "02".
Then click OK. And again OK at the "Extract Finished" prompt.
- We now have the bass in the Edit Buffer.
- STORE the Edit Buffer to a new sequence and rename it to something
like "Bass alone".
Now that we are finished Extracting, we can DELETE the original
coposite sequence or keep it as a back-up.
If we were really slick, we could have written the Edit Buffer
containing the bass part back to the original "Bass and Drums" sequence,
effectively doing a DELETE and a STORE in one step.
ERASE ALL SEQUENCES
Choosing this menu item erases all sequences currently in memory,
but nothing else. Cue points, Tempo, Sync settings, and other parameters
are all left in their current state. This can be used to clear out
sequence space when starting a new piece of music. A safety prompt will
then appear to prevent inadvertent loss. Click on YES, or press the
RETURN key to erase the sequences. Click NO to safely return to Music-X
without erasing the sequences.
*************************
* Do you really want to *
* ERASE all sequences? *
* (NO) (YES) *
*************************
Illustration 6.9: Erase Safety Prompt
USE ZERO ORIGIN
This causes the master clock's measure and beat numbers to start at
0000.00.000 instead of 000l.0l.000, in case you prefer thinking that way
or need to do some frame calculations, etc. All pages are affected.
This option is active if the menu item is check marked.
(See Sequencer Page / Clock Window)
WORKBENCH
This option is part of a memory saving technique. In the Amiga, all
the graphics must be stored in a special memory called chip memory, if
they are to be displayed. Different applications (programmes) reserve
sections of chip memory to use for their graphic "screens". The Amiga's
Workbench uses a screen and takes up some chip memory. If Music-X boots
up into a system with little free memory, it may turn off the Workbench
screen to free up some of the chip memory. This does not mean that the
Workbench is erased or stops running, it just means the screen is not
displayed to save chip memory. Music-X does this so it will be able to
display its own menus, windows, requesters, and prompts.
While checked, this menu item means that the Workbench screen is
turned on. One can see and move between the Music-X and Workbench
screens by clicking the front-to-back gadgets or by pulling one down to
reveal the other.
(See Tutorials / Amiga Basics)
When this menu item is not checked, it means the Workbench screen
has been removed from chip memory and is turned off. The Workbench can
be turned back on by selecting this menu item.
SYNCMENU
The word synchronous comes from the Greek words: sun for "same", and
khronos for "time". The Sync menu governs the way Music-X synchronizes
with, or operates at the "same time" as, other time keeping devices.
Settings mae in this menu can be saved and reloaded with any
performance file (including the Default performance), making the
reconstruction of sync setups automatic.
*Note: If you consistently use the same equipment set up, you might
want to resave the "Default.perf" file with your particular Sync menu
settings.
(See Sequencer Page / File Menu / Save Performance)
THE NEED FOR SYNCHRONIZATION
Music is a time dependent art form. The applications of electronic
music often involve the use of several time keeping devices at once (drum
machines, sequencers, audio tape recorders, film or video equipment,
etc). It is rare that any two unconnected time keepers can agree with
each other without eventually drifting apart. Even if they could, it
would be difficult to independently start them at exactly the same time.
It is therefore necessary to synchronize them somehow.
This is usually done by making one device the leader, or master, and
using it to transmit start, stop, location, and timing information that
the others receive and follow. That way, even if the leader is wrong,
they all move together. A common method is to code "messages" into
binary numbers and transmit them electronically as very fast two-state
voltage fluctuations. MIDI and SMPTE are two examples of this method.
*Note: Music-X has the ability to operate in synchrony with a
number of external time sources (be a follower). It can also transmit
MIDI Clock and Song Position Pointer messages to synchronize drum
machines and sequencers (be a leader). In some cases it can be a leader
and a follower simultaneously.
TWO TYPES OF TIME
Synchronization messages can be divided into two types, those that
transfer Relative Time information and those that transfer Absolute Time
information.
Relative Time is described in musical terms like "Measures", and
"Beats". When you say "the second measure of the bridge", you are
speaking of Relative Time. Two examples of Relative Time synchronization
are MIDI Song Position Pointer and MIDI Clocks (more on those later).
Absolute Time is described in Hours, Minutes, and Seconds. When you
say, "The gig starts at seven thirty", you are speaking of Absolute Time.
An example of Absolute Time synchronization is SMPTE Time Code (more on
that too).
Music-X has two types of sequences, those that are tempo dependent
(Relative sequences), and those that move with the clock (Absolute
sequences). Music- X also has two internal clocks, one for each type of
sequence (Relative and Absolute).
The rest of this chapter contains individual descriptions of the
items found in the Sync menu.
MASTER CLOCK
The MASTER CLOCK setting determines which source will be monitored
to keep Music-X moving through time. Music-X actually always runs on its
own internal clock. As timing messages are received from the current
Master Clock source, Music-X's internal clock is reset to match them.
This provides as fine an internal resolution as possible by allowing
Music-X to play between incoming messages, while making sure that, as
messages come in, Music-X keeps in step with them.
Two internal and three external time sources are listed in a pop-out
menu. The five choices are mutually exclusive. The checked item shows
the current MASTER CLOCK setting. The choices are described below.
INTERNAL
When INTERNAL is selected, Music-X uses one of the Amiga's
timer chips as the Master Clock source.
The Relative clock is updated in increments of l/l92 quarter
note, at a rate dependent on the current tempo. The Absolute clock is
updated through a conversion routine.
Example: Playing Music-X with no other sync equipment.
- Set MASTER CLOCK to INTERNAL
- Click PLAY to start Music-X
MIDI CLOCKS
Read this menu item as "MIDI Clock Messages". When this
Master Clock setting is chosen, Music-X synchronizes its internal clock
to incoming MIDI Clock messages while in PLAY or RECORD modes.
WHAT ARE MIDI CLOCK MESSAGES?
MIDI Clocks are MIDI messages transmitted by a drum machine or
sequencer that say to the receiver "Advance your musical clock by l/24
quarter note." Each time the trasmitter advances its own internal clock
by l/24 quarter notes, it sends out a MIDI Clock message. Each time the
receiver gets one of these messages, it advances its clock as well. This
means that whatever the tempo of the transmitting device, the receiver
will follow it; the transmitting device controls the tempo of the music.
MIDI CLOCKS is used as the Master Clock setting in situations where
an external drum machine or sequencer will be the time keeper, and you
wish Music-X to synchronize with it.
*Note: In most situations where a drum machine will be used, it is
better to let Music-X be the master, and have the drum machine follow
Music-X. This allows Music-X to be in charge of tempo changes, and to
play Absolute sequences correctly. (MIDI clocks, being a Relative Time
system, cannot transmit Absolute Time information). However, the MIDI
CLOCKS menu option has been proided for other situations.
(See Sequencer Page / Sync Menu / MIDI Sync Out)
**********************************************
Internal Clocks * MIDI Clock * MIDI Clock * *
Too fast **********************************************
||
Waiting
Internal Clocks **********************************************
too slow * MIDI Clock MIDI Clock *
**********************************************
|
re-synced
Internal Clocks **********************************************
in sync * MIDI Clock MIDI Clock *
**********************************************
Illustration 6.l0: Improving the resolution of MIDI Clocks.
MIDI Clocks have a resolution of l/24 quarter note. Music-X has a
resolution of l/l92 quarter note. That means that Music-X has eight
times the resolution of MIDI clocks. It seems a shame to waste all that
resolution. However, by matching Music-X's tempo changes to the drum
machine's, one can effectively increase the resolution and accuracy of
MIDI Clocks.
Example: Using a drum machine to drive Music-X.
- The drum machine's MIDI OUT must be connected to the Amiga's MIDI
IN and the drum machine must be able to transmit MIDI Clocks.
- Set MASTER CLOCK to MIDI CLOCKS
- Set MIDI START & STOP (also found in the sync menu) to RECEIVE.
- Manually start the drum machine.
- The drum machine sends a MIDI Start message.
- Music-X receives the MIDI Start message and locates its musical
clock to the beginning of the song.
- The drum machine sends the first MIDI Clock message and begins
playing.
- Music-X receives the first MIDI Clock message and begins playing.
- Music-X continues to play the next 8 of its own clocks (the
equivalent of l/24 quarter note) at the current Music-X tempo.
- If Music-X finishes playing its 8 clocks before receiving the next
MIDI Clock message, then it stops playing and waits.
- The drum machine, advancing at its own tempo, sends the next MIDI
Clock message.
- Music-X receives the next MIDI Clock message, advances its musical
clock to the next l/24 quarter note, and continues to play. If the
MIDI Clock is received before Music-X expected it, then Music-X jumps
ahead anyway to keep in step. (See Illustration 6.l0)
- Music-X matches the tempo of the drum machine and provides some
additional resolution as well. This process continues until the end of
the song.
(See Sequencer Page / Sync Menu / MIDI Start & Stop)
(See Sequencer Page / Tempo Window)
*Note: Most the the newer drum machines transmit MIDI Clocks even
while stopped. This means that the sequencer can play while syncing to
MIDI Clocks, even without the drum machine playing.
MIDI Clocks can also provide a way of moving song written on another
computer-sequencer over to the Amiga:
- The source computer must be able to transmit MIDI Clocks and its
MIDI OUT must be connected to the Amiga's MIDI IN.
- Set MASTER CLOCK to MIDI CLOCKS
- Set the two sequencers' tempo sliders to the same value.
- Put Music-X in RECORD
- Play the other sequencer.
- All the MIDI data played by the source will be recorded by Music-X
in time with the MIDI Clock messages.
(See Sequencer Page / Transport Window / RECORD)
(See Sequencer Page / STORE)
VIDEOCLOCK
When VIDEO CLOCK is chosen as the MASTER CLOCK setting, Music-X uses
the Amiga's internal video clock to drive the Absolute clock.
There is a chip in the Amiga that generates the timing frequency
used to drive the monitor display's Vertical Blanking Interval (VBI).
The VBI is the dark strip between frames in a television signal. The
Amiga's VBI frequency is just slightly under 60 frames per second. When
using VIDEO CLOCK as the Master Clock, the Absolute clock is updated by
l/2 frame at every VBI. Since the video chip frequency is the same as
the National Television Systems Committee (NTSC) standard frame rate for
television, the VIDEO CLOCK setting can be used to approximate Non-Drop
Frame, or Drop Frame SMPTE in cases where you want to test the total
elapsed time of the piece for accuracy against the clock.
MIDI TimeCode
When MIDI Time Code is chosen as the Master Clock setting, Music-X
synchronizes its Absolute clock to incoming MIDI Time Code messages.
What is MIDI Time Code?
MIDI Time Code (MTC) is a type of MIDI message that describes
elapsed time in Hours, Minutes, Seconds, and Quarter Frames. This makes
it similar to SMPTE Time Code, with the advantage that MTC can be
received via normal MIDI cables; SMPTE Reader hardware is not necessary.
MTC has four formats: 24 FPS (Frames Per Second), 25 FPS, Non-Drop
Frame, and Drop Frame. When synchronizing Music-X to MTC, it is
necessary to set Music-X to the same format using the TIME CODE
parameter.me Code for American Music-X users.
Like Non-Drop Frame, Drop Frame format is also rated at 29.97 frames
per second. What is different about Drop Frame is that the accumulated
errors in frame numbers, due to the slightly slow frequency, are
corrected to match real time by dropping some of the frame numbers
periodically. At the end of an hour, the total number of frames will
still be l08 frames short, but the frame numbers will be correct.
This is the way it works: There is still an orderly progression of
frames, one after the other. Each frame has a unique number, and all the
frames are numbered in ascending order. However, when numbering each
frame, certain frame numbers are skipped. The ones that are left out are
the first two frame numbers of every minute except the first minute and
every tenth minute after that. That means that a total of l08 frame
numbers are left out every hour (just enough to correct the error).
For example, experimenting with Music-X's TIME: clock, while in Drop
Frame, will show that the frame numbers jump from 00:00:59.29 to 00:00:02
because there is no frame 00, or 0l, at the beginning of minute 0l.
TIME CODE OFFSET
This option can be used when synchronizing Music-X to incoming SMPTE
Time Code or MIDI Time Code messages to shift the beginning of Music-X
Time Code against the beginning of external Time Code.
TIME CODE OFFSET allows you to start Music-X's clock at any point
during the reference Time Code. This can be used, for instance, when
recording a short song in the middle of a long film.
Choosing this menu opens a window in the Sequencer Page showing the
current Time Code Offset number in the form of Hours, Minutes, Seconds,
and Frames. The Time Code Offset number may be edited using the arrows
next to each number.
********************************************************
* () () || () () || () () || () () || *
* HRS || MIN || SEC || FRM || (OK) *
********************************************************
Illustration 6.ll: Time Code Offset Window
When done, click OK to close the window. The number that you
specify will be subtracted from each incoming Time Code message before
being used by Music-X.
For example, let us say you are writing some background music to a
friend's video. Your friend says the tape is striped with SMPTE and that
the music should start 20 minutes into the tape.
- The video machine must be sending SMPTE messages to the Amiga's
SMPTE Reader or to a SMPTE-to-MTC converter connected to the Amiga.
- Set the Master Clock to SMPTE READER, or MIDI TIME CODE depending
on which device you are using.
- Set the Time Code Offset to 00:20:00.00. Music-X now considers
this to be zero (00.00:00.00)
- Put Music-X in RECORD, and run the video from somewhere before the
20 minute mark.
- As Music-X receives each incoming Time Code message, it subtracts
20 minutes from it and attempts to use it. If a Time Code message
appears to be less than zero, it ignores it, and waits for the next one.
- When Music-X receives the Time Code message specifying 20 minutes,
it subtracts 20 minutes from it, sees a message of zero, and says "aha...
I can use this." Music-X then begins recording from that point.
- As you see the action on videotape, play along to match it.
- When done, STORE your music to a sequence and put Music-X in PLAY.
- Rewind the video and play it. Music-X will auto-locate and play
back the freshly recorded music along with the video.
MIDI SYNC OUT
When MIDI SYNC OUT is checked, Music-X will transmit MIDI clock
messages at the current tempo, when in PLAY or RECORD. This is done
regardless of the current MASTER CLOCK setting.
This is handy when using a drum machine as an external sequencer,
that is, with musical drum patterns stored in its own internal memory
rather than being triggered by note events from Music-X's own sequences.
For example, to synchronize a separately programmed MIDI drum
machine (or other sequencer) from Music-X:
- Connect a MIDI cable from the Amiga's MIDI OUT to the drum
machine's MIDI IN.
- Set the drum machine to receive MIDI Clocks (most units call this
"MIDI sync mode").
- Set Music-X's MASTER CLOCK to INTERNAL.
- Turn on MIDI SYNC OUT
- Set MIDI START & STOP to TRANSMIT
- Turn on SONG POSITION (see below).
- Play Music-X from any point in the song. Music-X will send a MIDI
Start, or MIDI Song Position Pointer message to locate the drum machine
and then begin transmitting MIDI Clock messages at the current tempo.
- The drum machine will receive the MIDI Clock messages and follow
Music-X.
To synchronize a drum machine while Music-X is synchronizing to
video:
- Set up the drum machine as above, and set up the SMPTE Reader to
feed Music-X SMPTE Time Code.
- Set the MASTER CLOCK to SMPTE READER
- Set the TIME CODE type to DROP FRAME (for color video).
- Set the TIME CODE OFFSET if needed to start the song in the middle
of the video.
- Turn on MIDI SYNC OUT
- Set MIDI START & STOP to TRANSMIT
- Turn on SONG POSITION (see below)
- Put Music-X in PLAY and start the video from any point.
- When Music-X receives the first Time Code message, it will auto-
locate to the specified point. After auto-locating, Music-X will send a
MIDI Start, or MIDI Song Position Pointer message to locate the drum
machine and then begin transmitting MIDI Clock messages at the current
tempo.
- As the video is stopped, fast forwarded or rewound, and played
again, Music-X will auto-locate to match it, then send Song Position and
MIDI Clock messages to locate and sync the drum machine.
SONG POSITION
This Sync menu option enables the sending of MIDI Song Position
Pointer messages by Music-X. While this menu option is checked, Music-X
will send a MIDI Song Position Pointer message whenever it deems a
relocation necessary. This would be whenever PLAY is clicked after the
current clock setting has been moved (by fast forwarding or rewinding, or
by using the CUE buttons). The only time a Song Position Pointer would
not be sent is when starting from the beginning of a song. In this case,
a MIDI Start message would be sent instead (assuming MIDI START & STOP is
set to TRANSMIT).
*Note: Music-X can send Song Position Pointer regardless of the
MIDI START & STOP setting.
WHAT IS A SONG POSITION POINTER MESSAGE?
Song Position Pointer is a MIDI message that describes some point in
the song based on the number of sixteenth notes that have elapsed since
the beginning. The receiver of a Song Position Pointer message stops
whatever it is doing and relocates its clock to the specified point.
Once the receiver has located, it can be sent MIDI Clock messages. This
process allows the sender and receiver to start together from any point
in the song without having to play from the beginning.
*Note: The receiving of Song Position Pointer messages is
always enabled. Music-X always relocates when it receives a Song
Position Pointer message.
SONG POSITION DELAY
Song Position Delay is an option that affects the way the SONG
POSITION option works, and may be used in any situation where Song
Position messages are sent. If SONG POSITION is not turned on (checked)
then the SONG POSITION DELAY setting is ignored.
The Song Position Delay feature is an allowance made to older drum
machines or sequencers that may not have implemented the MIDI
specification correctly. It causes Music-X to temporarily delay the
sending of MIDI Clocks after a Song Position message has been sent, so
that older devices, that ignore their MIDI IN ports while locating, will
not miss a few MIDI Clock messages and start out of sync. This feature
is only needed when using one of these older units as an external
sequencer, that is, with musical drum patterns stored in its own internal
memory. If you are triggering the drum machine with note events from
Music-X's sequences, then Song Position is not needed.
When a MID device receives a Song Position message, it relocates its
clock. This is usually done by playing silently, as fast as possible
from the beginning of the song. This takes time. The further into the
song it must go, the longer it takes to locate.
HERE IS A SCENARIO OF THE PROBLEM:
- After fast forwarding or using CUE point, PLAY is clicked.
- Music-X notices the new clock time and begins locating silently to
the new position, playing through any Time Signature Changes and
calculating the number of l6th notes that have elapsed.
- Music-X finishes auto-locating and sends a Song Position Pointer
message specifying the accumulated l6th notes.
- The drum machine receives the Song Position Pointer messages and
begins auto locate.
- Music-X begins playing and sending MIDI Clock messages.
- The drum machine is still locating and misses the first few MIDI
clocks (MIDI specs say that it should keep track on incoming MIDI Clocks
while locating).
- The drum machine finishes auto locating and begins playing from
the previously specified point at the rate dictated by the incomeing MIDI
Clock messages.
- Music-X has meanwhile played ahead.
- The two units remain perfectly out of sync until the end of the
song!
One solution would be to click PAUSE, and then PLAY, and wait for
the receivers to catch up before turning PAUSE off to play again. SONG
POSITION DELAY essentially does this automatically.
HERE IS A SCENARIO OF THE SOLUTION USING SONG POSITION DELAY:
- After fast forwarding or using a CUE button, PLAY is clicked.
- Music-X notices the new clock time and begins locating silently to
the new position; playing through any Time Signature Changes and
calculating the number of l6th notes that have elapsed.
- Music-X finishes auto-locating and sends a Song Position Pointer
message specifying the accumulated l6th notes.
- Music-X begins waiting for a period of time based on the magnitude
of the Song Position message.
- The drum machine receives the Song Position Pointer message and
begins to auto locate.
- The drum machine finishes auto locating and waits for MIDI Clock
messages to advance its clock.
- Music-X begins playing and sending MIDI Clock messages.
- The drum machine begins playing at the rate dictated by the
incoming MIDI Clock messages.
- The two units remain in sync until the end of the song.
The process described above is what happens when using SONG POSITION
DELAY while the MASTER CLOCK setting is set to either INTERNAL or VIDEO
CLOCK. While using these MASTER LCOCK sources, Music-X can wait as long
as it sees fit before playing, because it is in control.
Song Position Delay is implemented slightly differently when using
either MIDI TIME CODE, or SMPTE READER as the MASTER CLOCK. When using
either of these MASTER CLOCK settings, it is impossible to tell what the
first incoming message will be. This is because the timing source can
relocate independently of Music-X. Music-X must follow it. When Music-X
receives the first incoming Time Code message, it converts it internally
to a song location. It then sends a Song Position Pointer message
specifying one measure later than the current position, and starts
playing. When one measure has passed, Music-X starts sending MIDI Clocks
(assuming that MIDI SYNC OUT is switched one).
Here is a scenario of the behaviour of Song Position Delay when
synchronising to a Time Code.
- PLAY is clicked.
- The tape recorder or other device is started.
- Music-X begins receiving Time Code messages and figures out where
in musical time it should be, based on the Absolute time specified in
the Time Code message.
- Music-X begins silently locating to the new position; playing
through any Time Signature Changes and calculating the number of l6th
notes that have elapsed.
- Music-X finishes locating and sends a Song Position Pointer
message specifying one measure greater than the current measure.
- Music-X continues playing but does not transmit MIDI Clocks.
- The drum machine finishes auto locating and waits for MIDI Clock
messages to advance its clock.
- After Music-X reaches the next measure, it begins transmitting
MIDI Clock messages.
- The drum machine begins playing at the rate dictated by the now
incoming MIDI Clock messages.
- The two units remain in sync until the end of the song.
MODULES MENU
A Modules menu is found on every page in Music-X (except the Keymap
Editor Page and the Protocol Editor Page, which are modules themselves).
A module is a small programme loaded into Music-X to execute a particular
function. Six modules come with Music-X as relased. More will become
available in the future. Following are descriptions of the two modules
that appear in the Sequencer Page / Modules Menu. Other modules are
described elsewhere in the manual.
NEWCLI
This module calls the standard Amiga programme "NewCLI" which opens
a text window titled "New CLI" in the Workbench screen.
CLI stands for "Command Line Interpreter". The CLI window is used to
give written commands to the AmigaDOS operating system. This gives you
another way to communicate with the Amiga to do things like look at the
contents of disks, run programmes, delete files, etc.
Move between the Workbench and Music-X screens as needed using the
front-to- back gadgets found on most screens and windows.
*Note: Learn how to use the CLI by reading an AmigaDOS manual.
NEWSHELL
This moduel calls the Amiga programme "NewShell" which opens a text
window titled "AmigaShell" in the Workbench screen. A Shell is basically
an improved CLI. Move between the Workbench and Music-X screens using the
front-to-back gadgets.
*Note: Learn how to use the NewShell by reading an AmigaDOS Manual.
TRANSPORT WINDOW
In the top left corner of the Sequencer Page is the Transport window
containing a cluster of controls modeled after the buttons on an analog
tape machine. These Transport Controls are activated by clicking on
them, and are used to start the clock, stop the clock, and relocate the
clock to different portions of the song. Following are descriptions of
those buttons.
**********************************************************
* (BEGIN) (END) (CUEl) (CUE2) (CUE3) (CUE4) (SET) *
* (PAUSE) (<<) (>PLAY) (>>) (O RECORD) (=STOP) *
**********************************************************
Illustration 6.l2: Transport Window.
(BEGIN)
("B" from the keyborad)
This button relocates the clock to the beginning of the song. This
button can be used while the clock is stopped or while the clock is
running. If used while in RECORD mode, the Record Buffer is erased, the
clock is moved to the beginning of the song, the sequencer backs up to
play the Count-In measures (see below), and recording starts again.
(END)
("E" from the keyboard)
This button relocates the clock to the last previously recorded
point in the song. The END button is self-adjusting, and automatically
recalculates its position each time a longer sequence is recorded.
However, it can also be set manually using the SET button (see below).
(CUEl) (CUE2) (CUE3) (CUE4)
("l", "2", "3", and "4" from the keyboard)
These user-definable CUE buttons are designed to emulate the auto-
locate functions of a professional multi-track tape recorder. They can
be used instead of Fast Forward or Rewind to quickly relocate the clock
to preset points. Those points can be set to the start of song sections
or to any point in the song using the SET button (see below).
The CUE buttons can be used while the clock is stopped or while the
clock is running. If used while in RECORD mode, the Record Buffer is
erased, the clock is moved to the CUE point, the sequencer backs up to
play the Count-In measures (see below), and recording starts again.
The default setting for the CUE buttons is the beginning of the
song.
CUE button locations can be saved with performance files.
(See Sequencer Page / File Menu / Save Performance)
(SET)
("=" (equals sign) from the keyobard)
This button is used to manually set the locations for the CUE
buttons (and the END button if you wish). SET can be used while the
clock is running or while the clock is stopped.
Here is how to set a CUE point using the SET button.
- Click SET.SET will appear highlighted; it is now "readied".
- Click on one of the CUE buttons (or the END button). The CUE
button will be set to the current clock position. SET will return to
normal appearance.
You can change the cue points at any time by repeating the above
steps.
(PAUSE)
(SPACE BAR from the keyboard)
As in a conventional tape recorder, you can temporarily halt the
playing or recording of a song with the PAUSE button.
Click PAUSE. PAUSE will become highlighted, and the clock will
temporarily stop. You can resume playing by clicking PAUSE again. When
PAUSE is released, the sequencer does not need to relocate as it would
with the series of commands STOP and PLAY.
If you click PAUSE while recording, the Record Buffer is not erased.
Releasing PAUSE will continue recording from that point.
PAUSE does not automatically cut off any currently sounding notes;
it holds the clock in its current state.
(<<)
("(" (left bracket) from the keyboard)
The Rewind Button is marked with two left-pointing arrows.
Depending on which clock is currently chosen, clicking this button will
move the clock back in increments of l measure, or l minute. Holding the
button moves the clock continuously. If you are already at the
beginning, then nothing will happen!
The Rewind Button cannot be used during PLAY or RECORD modes.
*Note: The clocks can also be changed in smaller increments by
using the green arrows in the clock window.
(See Sequencer Page / Clock Window)
(PLAY)
("P" from the keyboard)
(ESC (Escape key) = All notes off)
(SHIFT-ESC = Super All notes off)
This button starts the sequencer from the current clock position.
If the clock is not at the beginning, then Music-X auto-locates by
playing from the beginning, as fast as possible, until it gets to where
the clock is, before playing normally. During auto-locate, Note events
are silenced, but all other events are played normally (albeit quickly).
This is so that things like Program Changes, Pitch Bend, Control Changes,
and other events that might affect the sound will be correctly updated to
their most recent values when the clock begins playing normally.
If PLAY is clicked while in RECORD mode, recording is stopped and
the clock continues running.
If at anytime during play, a "MIDI stuck-on note" occurs, remember
that pressing the Amiga's escape key (at the upper left corner of the
keyboard) sends a MIDI All Notes Off message. Holding the SHIFT key,
while pressing the escape key initiates a "Super All Notes Off", which
actually sends a MIDI Note-Off message for each of the l28 possible notes
on all l6 MIDI channels. This feature is available from all Pages in
Music-X.
(>>)
(")" (right bracket) from the keyboard)
The Fast Foward Button is marked with two right-pointing arrows.
Depending on which clock is currently chosen, clicking this button will
advance the clock in increments of l measure, or l minute. Holding the
button moves the clock continuously.
The Fast Forward button cannot be used during PLAY modes.
*Note: The clocks can also be changed in smaller increments by
using the green arrows in the clock window.
(See Sequencer Page / Clock Window)
(RECORD)
("R" from the keyboard)
The basic process in MIDI recording is to capture the incoming data
stream from the mother keyboard (or whatever device is hooked up to the
computer's MIDI IN port), time-stamping each arriving event with the
current clock time.
OVERVIEW
The Protocol Editor page is accessed from the Edit menu of the Librarian
Page, and is used to create or modify the protocols used by the Librarian
page when sending or receiving data dumps from other MIDI devices. Think
of this page as an extension of the Librarian Page.
(see Librarian Page / Edit Menu / Create Protocol)
(see Librarian Page / Edit Menu/ Modify Protocol )
Creating new protocols is not easy. Fortunately, you probably won't
need to. In most cases you will be using protocols created by other
people, while you spend your time creating music instead. Likely as not,
you can take full advantage of Music-X without ever reading this chapter.
Suppose, however, that you have an instrument for which you cannot obtain
a protocol. There are several options open to you:
l. Hire a MIDI Guru.
2. Get a MODEM and call a BBS or online information service such as
PLINK
(People-Link) or PAN (Performing Artists Network) or BIX (Byte
Information Exchange) to name just a few.
3. Find a friendly neighbourhood whiz kid.
4. Join a User Group; they often have droves of unsuspecting
volunteers.
5. Write your own protocol.
If you wish to write protocols yourself, you'll need some knowledge of
basic MIDI and computer related concepts. For example, many
manufacturers publish the specifications for their instruments using the
hexadecimal (base l6) or even binary (base 2) numbering systems. It is
beyond the scope of this manual to describe technical background such as
numbering systems; however the information is readily available in most
computer bookstores or in the library.
WHAT IS SYSTEM EXCLUSIVE
When the MIDI standard was being written, it was realised that it would
be impossible to think of everything that anyone would possibly want to
communicate via MIDI. Therefore a loophole or exception was built into
the language. A system Exclusive message (often abbreviated to SysEx;
pronounced ("sis-ex") can be used to temporarily suspend the rules and
let one instrument communicate with another using codes only they
understand. This is like a Roland synthesizer saying "Don't listen, you
guys - this is Roland talk!". That means that even though MIDI is a way
for manufacturers to design their own non-standard communication formats
to be used within MIDI. Synth manufacturers have taken advantage of the
SysEx loophole to implement data transfers between instruments of the
same make and model. The Protocol Editor and Librarian Page are designed
to work with the data transfers.
All SysEx messages begin with the MIDI "Start of System Exclusive" code
(FO). Following that is the manufacturer's ID number, and then a series
of bytes, the formatÜjÜof which depends on the manufacturer's ID.
Finally, an "End of System Exclusive" (EOX) code is used to terminate the
SysEx message.
Modern instruments have lots of different kinds of information in them
besides sounds. For example, micro tuning data, performance data, voice
parameters, sample data, etc. Each protocol is designed to support one
kind of date transfer. It is often the case that a different protocol
will be required for each type of information stores in the instrument.
The designer of a protocol is free to use the parameters specified by the
Librarian Page Channel: buttons, PREVIEW button, and Program indicator in
whatever manner he or she chooses. They don't necessarily have to be
used in the manner in which they are labelled.
THE FACE OF THE PROTOCOL EDITOR
The Protocol Editor Page has four main areas, each containing a number
of text boxes. The topmost area contains general information about the
instrument, the name of the protocol, which Patch Editor to use if any,
etc. The second area contains message strings used in receiving data
from the instrument. The third area contains message strings used in
sending data to the instrument, and the fourth area consists of "sub-
strings" which are messages that are used inside of other messages.
TITLEBAR
The title bar is found along the top of all Music-X pages to remind one
where one is. In the Protocol Editor, the name of the current protocol
being edited appears here as well.
FILEMENU
Protocol files are kept in the protocols directory on the Music-X
program disk. If you write or collect more than can fit on your master
disk you may wish to move the directory to another disk.
(See Advanced Users / Workbench Tool Types / PROTODIR)
Load...
(RightAmiga-"L" from the keyboard)
This menu item is used to Load a protocol from disk. Choosing Load...
calls the file requester titled "Load Protocol". The current protocol
name is offered as a default file name by the requester. Loading a
protocol from disk overwrites the protocol currently in the editor.
(See File Requester chapter)
Save
(RightAmiga-"S" from the keyboard)
This menu item is used to Save a protocol to disk. choosing Save...
calls the file requester titled "Save Protocol". The current protocol
name is offered as a default file name by the requester. When naming new
protocols, the suggested convention is Instrument Name.TransferType.
Musix-X also saves an icon for the protocol file in the same directory.
Icons for protocol files look like a sheet of l's and 0's.
(See File Requester chapter)
Exit
(RightAmiga-"X" from the keyboard)
This menu item is used to leave the Protocol Editor and go back to the
librarian. If you have just created a new protocol, be sure to save it
first. The Protocol Editor clears the message strings on exit.
NAMEPANEL
This panel is used to hold protocol information other than the actual
message strings. It contains a number of text boxes which are described
below.
Protocol Name:
Here's where you name your protocol. This name is used when saving the
protocol to disk. The standard (but not mandatory) format for protocol
names is: instrument.datatype. Example: "CZ-l000.Voices" is the file
name for the protocol that sends and receives CZ-l000 individual voice
dumps.
Normal Program:
This text box contains one of the substrings substituted for the string
variable "PG" in a message string. This substring is used in a message
string when the PREVIEW button is turned off in the Librarian Page.
PREVIEW PROGRAM;
This text box contains the other substring substituted for the string
variable "PG" in a message string. This substring is used when the
PREVIEW button is turned on.
PATCH EDITOR NAME:
This is where you attach the appropriate Patch Editor (if there is one)
to the current protocol by typing the Editor's pathname. The pathname is
stored along with the protocol, imbedded in a library file, when the
library file is saved. This allows the Librarian to locate the Patch
Editor when the library file is loaded and edited later. If the pathname
is wrong, the Librarian will not be able to locate the Patch Editor
even if it exists.
(See Librarian Page / Edit Menu / Edit Entry)
NAME OFFSET:
This numeric indicator is used to describe the location of name data
within the body of data in a library entry. It is used by the Librarian
Page when displaying the names of patches or programs in the individual
library entries.
This number represents the number of bytes that must be skipped from the
beginning of the library data to find the beginning of the name. A name
offset of 0000 means the name starts at the beginning of the data.
Various synths imbed the name parameter inÜjÜdifferent portions of the
bulk data dump.
NAME LENGTH
The Name Length indicator is used with the Name Offset indicator to
describe the location and length of name data imbedded with a library
entry. It ranges from 0 to 3l. A name length of zero can be used in
cases where there is no name in the bulk data, as when transferring
sample dumps etc.
CHAR MAP:
Read this as "Character Map"
Various manufacturers use different numbers to represent the alphanumeric
characters that are considered legal in patch names. Not all use the
standard ASCII format as used on most computers. This Char Map string
gadget can be used to define the set of legal characters for that synth.
If the synth uses the ASCII character set, then leave this field blank.
The contents of the gadget are used to describe, to Music-X, the
character set that the instrument uses. This is done by typing the order
of letters that it uses.
The ordering of the letters is described by entering a series of letter
pairs, separated by commas, each pair representing a range of characters
which are in the instrument's character set. For example, if the
character "A" is the first character in the instrument's character set,
and the "Z" is the twenty-sixth character, then the first entry in the
Char Map string will be "AZ", indicating the letters "A" through
"Z". If the twenty-seventh character was the letter "a" (lower case),
which then proceeded through "z" (lower case), the next entry would be
"az". That would make the total string so far "AZ,az".
When you describe ranges of characters, you can only connect ranges if
they can be expressed contiguously in ASCII. Otherwise, the Amiga, which
uses ASCII, will not understand. If the ordering of the letters cannot
be expressed as a contiguous ASCII range, then you'll need to define one
or more ranges whose widths are one character wide. This is done by
delimiting such ranges with the same character (as in "AA").
You can also enter characters with a 2-digit hexadecimal value, by
proceeding them with a backslash ("/"). For example, "/20", which is the
ASCII value for a space character. This is handy for entering characters
like the comma (",") which might be misinterpreted.
RECEIVE PANEL
The RECEIVE panel is used to define the set of incoming and outgoing
message strings that will be used during transfer when the RECEIVE button
is clicked in the Librarian Page. It contains four string gadgets that
can be edited in the normal fashion. All numbers in the string panels
are in hexidecimal. This is the adopted format because most instrument's
System Exclusive formats are published in hex.
Following are short descriptions of the strings. They are described more
fully in the "Music-X Protocol Language" section of this chapter.
Initiate:
This string describes the request to receive, sent by Music-X.
Confirm
This string describes the confirmation message sent by the synth to
indicate that it is ready to send data.
Ack:
Read this as "Acknowledge."
This string describes the acknowledgement message sent by Music-X that it
is ready to receive data.
Data
This string describes the format of the data that the synth will be
sending.
SENDPANEL
The SEND panel is used to define the set of incoming and outgoing
message strings that will be used during transfer when the SEND button is
clicked in the Librarian Page.
Initiate:
This is the request to send, sent by Music-X.
Confirm
This is the "OK, ready to receive" confirmation that the synth sends (if
any).
Data:
This is the format for the data that Music-X will be sending.
Ack:
This is the acknowledgement that the synth sends to say that it is ready
to receive more data.
SUB-STRINGS PANEL
Sometimes there are strings that need to be used often in the RECEIVE or
SEND panels. These message fragments can be written into the SUB-STRINGS
panel, and then be represented in the other message strings as
abbreviations.
Prefix:
The abbreviation for Prefix is "PR". Anytime "PR" appears in a send or
receive string, the prefix string is substituted. A Prefix string
usually consists of a "Beginning of SysEx" byte (FO), then a
manufacturer's ID.
Cancel:
For those synthesizers which understand such things, this substring is
used to hold the Cancel string which is sent when Music-X wants to halt
the transfer process, perhaps as a result of a user abort. This string
cannot be imbedded in any other message strings; it is used automatically
when needed.
#l:
This is user string number one. Its contents are substituted for the
abbreviation "//l" when used in the other panels.
#2:
This is user string number two. Its abbreviation is "#2".
PROTOCOL LANGUAGE
Technically speaking, a Music-X protocol is a description of the
messages that need to be sent to an instrument to communicate with it.
This sub- chapter will explain the construction of those messages using
the protocol language built into Music-X.
Protocols, Messages and Strings
Each protocol consists of a number of "messages". Each message is a
string of codes to be either sent to or received from the instrument.
You create a protocol by creating the correct message strings for that
instrument, and typing them into the Protocol Editor. The message
strings are lists of numbers or mathematical expressions, separated by
commas. The numbers must be in hexadecimal (since that's the way
synthesiser manufacturers print out their code descriptions). Once typed
in, Music-X can use this information to communicate with the instrument.
Finding out about MIDI formats
Most manufacturers of MIDI equipment publish the system exclusive codes
needed to communicate with their instruments. Some manufacturers publish
these codes in the back of the manual, or in a separate book that comes
with the instrument. Others require that you write to them directly to
obtain a copy of the system exclusive format.
Sending and Receiving
Communicating with some synthesisers is very simple. When you want to
send them a message, you simply send it, and when you want to receive a
message, you send a special message to the synthesiser saying "please
send me some data", and the synthesiser sends you the data, which you
receive and store away.
However, most instruments are more complex than that. Usually there is
some sort of "handshaking". Handshaking is like good manners, in that
there is a lot of "please and thank-you" going on. Here is an example of
handshaking between the computer and a synthesiser:
Computer: Please send a message.
Synth: Are you ready for the message?
Computer: Yes, send the first part.
Synth: Here it is. <data>
Computer: please send the next part.
Synth: Here it is. <data>
Computer: Please send the next part.
(repeat previous two steps for a while)
Synth: Here it is, this is the last part. <data>
Computer: Thank you very much.
Synth: You're welcome.
Now, that was a somewhat anthropomorphised version of the way a protocol
is used. In actuality, it would look something like this:
Computer: FO 44 l2 l7 l9 F7
Synth: FO 44 l3 l9 00 00 l8 F7
(And so forth. You get the idea).
Now, not all instruments go to this extreme. Many of the messages used
in the above example are often absent on a particular synth. Other
synths have special messages like "I have a problem, stop sending
messages for a while," or "Something's wrong, cancel the transfer," or
"Eh? I didn't get that last message quite right."
The message strings are used to tell the computer how to send and
receive messages of this type. Because of handshaking, each transaction
between the computer and the synthesiser will often consist of a number
of messages travelling in both directions. For example, when sending
data to the synthesiser, the computer will actually receive as well as
send messages, although the important data will be in the messages that
are sent. It will be necessary for you to describe correctly all of the
incoming and outgoing messages, for both types of transactions.
Music-X protocols are based on a "dialogue model". That is, as in a
conversation; each person takes turns talking with the other person.
Here is the overall structure of a transaction to RECEIVE data:
l. Music-X requests data.
2. Synthesiser Acknowledges Music-X.
3. Music-X indicates that it is ready to accept data.
4. Synth sends some data.
(Steps 3 and 4 are repeated until all data is received).
These 4 steps are labelled Initiate, Confirm, Ack (Acknowledge), Data.
Any one of the messages may be omitted, although omitting the last one
is not meaningful. For example, if message number 3 (Confirm) is
omitted, then it is assumed that the synthesiser will continue to send
data without waiting for a confirmation. If message number 2 (Ack) is
omitted, then it is assumed that there is no acknowledgement sent from
the syunthesiser; that the first thing it will send will be a data
message. If message l is omitted, then it usually means that the
synthesiser required "manual MIDI control". That is, you actually have
to press a button on its front panel to get it to send the data, and
there is no actual message that can be sent from the computer to get it
to send data.
*Note: There is another way that the four messages can be used. Some
synthesisersÜjÜsend their data as two separate messages which are
different. This is often the case when an instrument comes out which is
an advanced version of an older model - one message is sent which
represents the old format information, and the second message is
additional information which applies only to the new model.
There is a way (explained below), whereby you can use the Ack message as
an additional Data message which is different from the regular data
message.
The overall structure of a transaction to SEND data to the synthesiser
is slightly different:
l. Music-X indicates that it will send data.
2. Synth responds that it is ready.
3. Music-X sends some data.
4. Synth indicates that it got the data OK.
(Steps 3 and 4 are repeated until all data is sent).
Like before, messages #l and #3 are outgoing, while messages sends #2
and #4 are incoming, but in this case the bulk of the actual data is in
//3 instead of #4. These 4 messages are named "Init", "Confirm",
"Data", and "Ack". ("Data" and "Ack" have exchanged places).
Like the receive transaction, any of the messages may be omitted.
Omitting the first two messages is often done in cases where the
synthesiser does not handshake, but simply expects the data to be sent.
Omitting the last message is often done in cases where the data is sent
as a single message, or when no confirmation of individual data
blocks is needed.
Limitations of System Exclusive Messages
Because of the way MIDI is structured, each system exclusive message
must start with the hexadecimal code "FO" meaning "start of system
exclusive message". Each code, or byte, in the message following that
must consist of a series of eight bits, and the most significant bit must
be zero. Any byte sent with a most significant bit that is not zero
(except Real-Time messages such as Active Sensing) will automatically
terminate the system exclusive mode. Due to this fact, all of the bytes
within the body of the message must have values which are between 0 and
l27. (There are 7 bits available, and each bit can be on or off, which
makes l28 combinations of ons and offs. Since we include zero as one of
the numbers, we have to leave out the number l28.So, 0-l27).
Unfortunately, many instruments (for example, samplers) have parameters
or data values that are larger than l27. These instruments solve the
problem by breaking up the large number into two smaller numbers, each of
which has less bits than the large one. The way the numbers are broken
up differs for different instruments. You'll need to be aware of this to
understand some of the explanations that are to follow.
The LookOut Utility
A programme called "LookOut" has been included on the Music-X Utilities
disc. It will help you to develop new protocols. What LookOut does is
open up a window which prints out error messages and status messages when
a protocol is activated, as well as showing the actual bytes that were
sent and received. You can use LookOut as a debugger to correct errors
in your protocols.
*Note: Don't expect to get a protocol correct on the first try - nobody
has yet.
FORMING A MESSAGE STRING
A message string consists of fields separated by commas. Commas may
only be used as separators and may not occur within parenthesised
expressions. Spaces between the fields are ignored. Each field is
actually a command to Music-X, and can consist of either a hexidecimal
number, a mathematical expression, or a special command. Fields
consisting of just a hexadecimal number simply mean "Send this number."
For example:
FO,44,l2,45
This message string simply means that the message consists of the code
"FO", followed by the code "44", followed by "l2", followed by "45". If
the message was an outgoing one, the computer would send those codes to
the synthesiser. If it was an incoming message, then instead of sending
those codes, the computer would know to expect them.
It is also possible to specify codes that are longer than one byte by
placing the codes in parentheses. For example, the field
(OFOF.3)
means send the hexadecimal number "OFOF" as a three-byte code. The "3"
is a "length specifier" - it indicates the length, in bytes, of the field
in the message string. All length specifiers must be preceeded by a
period and must be part of a field surrounded by parentheses. Length
specifiers can range from l to 5.
Because of the way the Protocol Language works, all multi-byte messages
are broken up into chunks of seven rather than eight bits, except for the
first byte, which is sent as a full eight bits. So, the bytes "OFOF",
which, in binary, are actually "0000llll0000llll", are sent as:
"00000000" (8 bits)
"000llll0" (7 bits + leading zero bit)
"0000llll" (7 bits + leading zero bit)
The reason for this is that all of the byte codes in a system exclusive
message, except for the first one, must have the first bit as zero. So
that only leaves seven bits. This system of encoding works well with
popular synthesiser formats.
ASCII Strings
You can also put an ASCII string into a field, in which case the string
is put into the message, character by character. The string must be
separated by double quotes.
("").
An ASCII character surrounded by single quotes, such as 'A' means to use
the numeric value of that ASCII character (just like in the C language).
Singly quoted letters may be used in expressions, and may have length
specifiers.
Examples:
FO,44"AAAA",l0
produces the codes:
FO 44 4l 4l 4l 4l l0
(The ASCII code for the letter "A" is 4l in hexadecimal).
('A'.3) - means "take the value 4l and insert it into the message for 3
bytes".
Expressions
Message fields can also contain mathematical expressions (in
parentheses). For example, instead of including a "2" in the message,
you could include the expression "(l+l)". Expressions can also have a
length specifier, as in: "(5+9*3.5)" which means, "Take 5, add 9,
multiply by 3, and put the result into the next 5 bytes of the message.
All of the terms in an expression must be integers, and evaluation is in
left to right order, (except for portions within parentheses, which are
evaluated first (parentheses can be nested (to any level))). The
operators supported are:
+ Add
- Subtract (or Negative)
* Multiply
/ Divide
% Modulus
! Boolean NOT
& Boolean AND
^ Boolean Exclusive OR
Boolean OR
<< Logical Bit Shift Left
>> Logical Bit Shift Right
() Parenthesized expression
=> Assignment - Variables can be assigned values, as in (A+l=>A)
where the value of A + l is assigned to A.
Wild Card Character
Sometimes you don't care about a particular incoming code from the
synthesizer, or don't know what that code will be. There is a wildcard
command that you can use instead of a number. The command is "##". You
can use it by itself, in which case it causes one byte of the message to
be ignored, or in parentheses with a length specifier, in which case the
length specifier indicates how many bytes are to be ignored. For
example:
FO,4l(##.3),42
This tells Music-X to expect two bytes (FO and 4l), then ignore the next
three bytes, then expect the byte "42". Wildcards can only be used on
incoming messages; otherwise, a protocol error will result.
Numeric Variables
A numeric variable is a single letter used to represent a numeric value.
The value represented by a variable may vary (thus "variable").
Variables can be used within message strings to allow the string to
change based on some external circumstance. For example, the message
string used by Music-X to initiate a programme dump by a synthesizer
could change depending upon which programme you wished to download.
Whenever a variable is used in a message string, the current value of
that variable is substituted into the message string. For example:
l2,33,n,02
In the above example, the third byte of the message will be whatever the
variable "n" is currently set to. Variables can also be used with length
specifiers, as in "(n.4)".
All of these variables have pre-defined meanings. You cannot create
your own variables, as you would in a programming language. The meanings
of the variables are as follows:
"K" or "k" - Checksum
Many instruments use checksumming as a way of insuring that the
data has been transferred correctly. A checksum is created by taking all
or part of a message and adding up those codes numerically to form a sum.
This sum is then sent along with the message. When the message is
received, the receiver adds up the codes, and checks to see if his sum
matches the checksum, in which case the receiver knows that message got
through OK. This can be important if the messages are very long, because
a slight power fluctuation or static shock to the computer could cause a
byte to be received incorrectly.
To use checksumming, you need to put braces (the"(" and ")"", or
"curly breaker" characters) around the part of the message which is to be
summed. Multiple fields may be enclosed in braces and checksummed.
Example:
l2,34,(02,n.55)
This causes the third through fifth byte of the message to be
added together and placed into the variable "K".
Many synthesizers use a negative checksum, which means that the
checksum value sent is the negative sum of the message bytes. This has
the advantage that the message bytes and the checksum added together
equals zero. To form a checksum like this, use an expression (-K&7f.l)
which means "Take the sum "K", negate it, logical AND it with 7F (which
turns off the topmost bit, necessary for MIDI system exclusive data), and
insert it into the message string for l byte.
"J" or "j" - Special Checksum
This variable functions the same as "K", except that the checksum
is calculated by using boolean XOR rather than addition.
"M" or "m" - Total Blocks Sent
This variable starts at zero and is increased by l for each block
or section of data that is sent to the instrument.
"N" or "n" - Channel Number
This variable is set to the currently selected channel in the
Librarian Page. (Actually, it's one less than that, as channel numbers
actually start at zero, but are labelled starting from one).
"O" or "o" - Patch offset, only in send
This variable is only used in special protocols that work in
cooperation with certain patch editors. It is used when a patch editor
wants to send a "partial update". This allows a patch editor to change
some of the data in a patch, and only send to the instrument the part
that was changed. The "O" variable indicates the start of the changed
section. For example, if the patch data was 488 bytes long, and the
bytes 52 through 69 had been changed, then "O" would be set to 52.
"P" or "p" - Program Number
This variable is set to one less than the current value of the
Programme: indicator in the Librarian Page. It ranges from 000 to l27.
If Use Original Program #s is selected, in the Librarian Page /
Options menu, and we are sending data, the variable "P" will actually be
set to the original programme number that the patch was received from, as
shown in the library file.
"Q" or "q" - Send Data Size
This variable indicates the size of the data block that is to be
sent to the instrument. Normally, this will be the full size of the
patch, but it could be less for "partial updates". This variable is only
used to inform synthesizers that need to be told how much data to
receive.
"R" or "r" - Total Bytes Received
The total number of data bytes received so far in the transaction
(after packing if used with "Y" data).
"S" or "s" - Total Blocks Received
The total number of data bytes sent so far in the transaction
(after packing).
"U" or "u" - Total Blocks Received
This variable starts at zero and is increased by l each time the
protocol goes through the Ack-message/Data-message cycle.
"V" or "v" - Value Last Received
This variable is set to the value of the last data byte received.
String Variables
Another type of variable that can be used in a protocol specification is
a string variable. Each string variable corresponds to one of the
substrings in the bottom panel of the Protocol Editor. For example, the
string variable "PR" stands for "Prefix". Whenever a message field
contains the letters "PR", the contents of the Prefix: message text box
will be substituted in its place. Message strings can get very long in
some cases, as well as very repetitive, so it's handy to be able to
define commonly used parts of messages. There are four string variables.
They are as follows:
"PG" - Programme string
This variable will be substituted with one of two strings,
depending upon whether the PREVIEW button in the Librarian Page is set.
If the PREVIEW button is set, then the message string labelled Preview
Programme: will be used; otherwise, the string labelled Normal Programme:
will be used. This will allow the message protocol to vary based on the
setting of the PRE-VIEW button. In many instruments, the "temporary
area" is accessed by altering the programme number sent to the
synthesizer.
"PR" - Prefix
This variable will be substituted with the contents of the Prefix
message string. In almost all synths, the first few bytes of every
message that the synth will send or receive are the same as the first few
bytes of all of its other messages. So to save typing, you can put those
bytes into the prefix string.
"#l" - User string l
This variable will be substituted with the contents of the #l:
message string.
"#2" - User string 2
This variable will be substituted with the contents of the #2:
message string.
String variables can be used by themselves in a field, or as a
component of an expression if the resulting string is properly formed.
For example, you could use "(PR*6)" if PR was "04" but not if PR was
"04,03" (because you can't have a comma within a parenthesized
expression).
Data Variables
Data variables represent data that is to be sent or received. When
received, this is the actual data that will be stored in the library
entry; all other parts of the system exclusive message (header checksum,
Ack, etc) are discarded after being used. When being sent, this data is
read from the library entry, and inserted into the transfer at the
correct point. Data variables are specified by the letter "X" or "Y".
Each variable must be used in an expression followed by a length
specifier, and surrounded by prentheses, and indicates how many bytes of
data are to be transferred in each block. In addition to a length
specifier, the Data variables may have an "offset" specifier, and a
"total" specifier. The format for Data Transfer message fields can be as
follows (including parentheses):
(Data.Length)
(Date.Length:Total)
(Data.Length.Offset)
(Date.Length.Offset:Total)
Data
There are currently two forms of Data variables. Each can be
used for sending or receiving.
The "X" command means the data is transferred normally, i.e. not
encoded in any way. (This requires that the data is already in normal
format with the leading bit zeroed.)
The "Y" command means the data is transferred in "nybbleized"
form. Each byte of the data is sent or received as two bytes. The first
byte contains the rightmost four bits of the original data byte, and the
second byte contains the leftmost four bits. So, a command of (Y.l00)
will actually cause 200 bytes to be transferred, however these will be
packed back into l00 bytes after transfer. Length specifiers, when used
with "Y" data, always specify the number of bytes in packed form.
Length
The Length specifier follows the command field and is separated
from it by a period. It indicates the size of the data block to be
transferred. If there is only one block then it indicates the total size
of the data.
A length specifier of zero indicates a special case that causes
the Librarian to ignore EOX (F7H, End of System Exclusive) and continue
to capture everything until the receive button is turned off. For
example:
(x.0)
Total
The Total specifier can be used during receive only. It follows
either the Length specifier or the Offset specifier. It must be last in
the field and is separated from the previous specified by a colon (":").
It indicates the total number of bytes of all data blocks to be received.
If using nybbleized data, it specifies the total number of bytes in
packed form. Music-X will continue to spend and receive messages until
the total amount of data transferred is equal to or greater than this
number.
Offset
There are some cases when data needs to be sent to an instrument
in a different order than it was received. The Offset specifier is a way
of implementing that.
The Offset specifier is only used when sending data. It must
follow the Length specifier and is separated from it by a period. The
Offset specifier can be positive or negative, and is used to read data
starting from any point in the library file.
Normally, Music-X sends out data sections sequentially, starting
from the beginning of the library file. For example, if the patch data
record was l00 bytes long, and you instructed Music-X to send 25 bytes
(say using (X.25)), the first time the message was transmitted Music-X
would send bytes l-25 of the data. The second time it would send bytes
26-50, and so on. However, if you specified an offset of l0, as in
(X.25.l0), it would send bytes ll- 35 the first time, bytes 36-60 the
second time, etc.
The way this works is, there is a "counter" that counts the
number of bytes of library data sent. This counter is identical to the
"S" variable. It starts at zero and increases by one with every byte.
This counter is normally also used to point to the next byte of library
data that is to be sent. When an Offset specifier is used after a Data
Variable, the Offset and the counter are added together to calculate
which byte in the library file to send.
*Note: Refer to the TX-8lZ.Voices protocol for an example of
this.
Special Commands
In addition to the above, there are a number of miscellaneous special
commands:
"W" - Wait
Tells Music-X to wait for a specified time. The length specifier
is used as a delay time, and is in 50ths of a second. For example:
(W.50)
This field causes Music-X to wait for one second before
continuing with the message.
"**" - Sentinel
Sometimes it is not possible to tell exactly how long an incoming
message is going to be, as some instruments send messages of varying
length. For this reason, the "sentinel" command has been included. If
you know that a particular byte value is always going to be at the end of
a message, you can use the sentinel command to inform Music-X that it
can use that value to detect when the message ends. To use sentinel,
place the "**" immediately before the value to be used. For example:
44,56,73,99,**F7
This example tells Music-X that the first "F7" received will
indicate the end of the message. Sentinel values are usually the last
byte of a message.
"@@" - Special Sentinel
This is used to indicate the last data block in the transfer. To
use sentinel, place the "@@" immediately before the value to be used.
When this value is detected during receive, the protocol breaks out of
the Ack- message/Data message cycle.
When this value is to be used during send, the value is sent with
the last block at the specified point.
"FIN" - Send Final Message.
Some synthesizers require that when receiving data from the, a
final "Ack" message be sent after all data has been received. the FIN
command, if included in a message, will enable this behaviour. The "FIN"
command can be anywhere in the "Ack" message.
PROTOCOL LANGUAGE SUMMARY
Field Typesand Literals
Literal Values
Hexadecimal number = numeric value
Singly quoted character(s) (") = literal ASCII value
Double quoted character string ("") = literal byte string
Expression Operators
+ = Add - = Subtract (or negative)
* = Multiply
/ = Divide
% = Modulus
! = Boolean NOT
& = Bollean AND
^ = Boolean Exclusive OR
= Boolean OR
<< = Logical Bit Shift Leaf
>> = Logical Bit Shift Right
() = Parenthesized expression
>= = Assignment
Substring Codes
PR = Prefix Substring
PG = Programme Substring
#l = User String #l
#2 = User String #2
Variables (upper or lower case allowable)
J = Exclusive-OR checksum
K = Additive Checksum
M = Total Blocks Sent
N = MIDI Channel Number
0 = Patch Offset
P = Programme Number
Q = Number of Bytes to Send
R = Total Bytes Received
S = Total Bytes Sent
U = Total Blocks Received
V = Value Last Received
Data Type Codes
X = Send/Receive Normal Data
Y = Send/Receive Nybbleized Data
Misc Field Type Codes
** - Sentinel
@@ = Special Sentinel
FIN = Send Final Acknowledge after transfer complete
## = Wildcard
W = Wait
Checksum Delimiters
( = Beginning Checksumming un-encoded data
) = End Checksumming un-encoded data
(( = Begin Checksumming nybbleized data
)) = End Checksumming nybbleized data
MessageStringSyntax:
The following describes the syntax, or grammar of the message strings.
Each description begins with the name of a syntax component, followed by
a colon. Below each of these is the symbol or list of symbols which
define the legal ways in which the syntax component can be formed.
Groups of symbols in brackets ("()") are optional, ellipsis ("...")
indicate that more such symbols may follow, and italicized words
represent other syntax components. The syntax components misc-field-
type-code, substring-code-variable,literal- value and expression are
defined in the previous section.
Message string:
field (,field)...
field:
literal-value
substring-code
variable
misc-field-type-code
(expression)
(expression.length)
(variable.length)
(misc-field-type-code.length)
(data-type-code(length(.offset))(:total))
length:
expression
offset:
expression
total:
expression
TransferModels:
Receive:
Init - Initiate - tell instrument to initiate data transfer.
Conf - Confirm - instrument indicates it's ready.
Ack - Acknowledge - tell instrument to send next block
Data - Receive Data - data sent by instrument.
(Ack & Data repeat until end of transfer detected).
Send:
Init - Initiate - alert instrument to receive data transfer.
Conf - Confirm - instrument indicates it's ready.
Data - Send Data - data sent to instrument
Ack - Acknowledge - instrument ready for next block.
(Data & Ack repeat until all data sent).
KEYBOARD EQUIVALENTS
SYSTEM MESSAGE REQUESTERS | RightAmiga-"L" = (L)ibrarian Page
RETURN for rightmost button or OK | RightAmiga-"Q" = (Q)uit Music-X
| RightAmiga-"P" = Loan (P)erformance
SEQUENCER PAGE | RightAmiga-"V" = Sa(v)e Performance
ESC (Escape key) = All notes off | RightAmiga-"O" =(O)utput Channelizer
| Function key Fl = Set Punch-In
"B" = P(B)EGIN | Function key F2 = Set Punch-Out
"E" = (E)ND | RightAmiga-"C" = (C)opy Sequence
"1" - CUE(l) | RightAmiga-"X" = E(x)tract Sequence
"2" = CUE(2) | RightAmiga-"Z" = Togle (Z)ero Origin
"3" = CUE(3 |
"4" = CUE(4 | CursorUp = Move up through sequence
"=" = SET | list
| CursonDown = Move down through list
SPACE BAR = PAUSE | SHIFT-CursorUp = Page up through
"(" = Rewind | list
"P" = (P)LAY | SHIFT-CursonDown = Page down through
")" = Fast Forward | list
"R" = (R)ECORD |
"S" = (S)TOP | RECORDER REQUESTER
|
SHIFT-"S" = (S)TORE | "G" = (G)O
SHIFT-"E" = (E)DIT | "C" = (C)ANCEL
SHIFT-"D" = (D)ELETE |
SHIFT-"P" = (P)REVIEW | SEQUENCE SELECTOR
SHIFT-"R" = Clock:(R)elative Clock |
SHIFT-"A" = Time: (A)bsolute Clock | "O" = (O)K
| "C" = (C)ANCEL
RightAmiga-"." = Suspend Music-X | CursorUp = Move up through sequence
RightAmiga-"S" = (S)equencer Page | list
RightAmiga-"F" = (F)ilters Page | CursorDown = Move down through list
RightAmiga-"A" = (A)miga Samples Page | SHIFT-CursorUp = Page up through
| list
| SHIFT-CursorDown = Page down through
| list
|
| SUSPEND WINDOW
|
| RETURN (Return key) = RESUME
OUTPUT CHANNELS | RightAmiga "T" = S(t)ore Sequence
| RightAmiga-"R" = (R)ecall Sequence
"O" = (O)K | RightAmiga-"X" = E(x)it Editor
"C" = (C)ANCEL | RightAmiga-"B" = (B)ar Editor
"N" = (N)0, CANCEL | RightAmiga-"E" = (E)vent Editor
| RightAmiga-"K" = Cut
BAREDITOR | RightAmiga-"C" = (C)opy
| RightAmiga-"D" = (D)elete
ESC (Escape key) = All notes off | RightAmiga-"P" = (P)aste
| RightAmiga-"A" = Select (A)ll
"/" = SetSig |
"A" = (A)dd | CursorUp = Move current event up in
"I" = (I)nsert | score
"C" = Move (change) | CursorDown = Move current event down
"V" = Remo(v)e | in score
SHIFT-"L" = (L)ock | CursorLeft = Move current event
"E" = S(e)lect | earlier in score
"M" = (M)ark | CursorRight = Move current event
"U" = (U)nmark | later in score
HELP (Help key) = Restore last | SHIFT-CursorUp = Move note up l
deleted event(s) | octave
"Z" = (Z)oom+ | SHIFT-CursorDown = Move note down l
SHIFT-"Z" = (Z)oom- | octave
SHIFT-"S" = (S)nap |
"Q" = (Q)uiet | EVENT EDITOR
"L" = Scro(l)l |
"G" = (G)rid | "/" = SetSig
SHIFT-"P" = (P)arams | "D" = (D)up
SHIFT-"R" = (R)epeat | "V" = Remo(v)e
SPACE BAR = PAUSE | HELP (Help key) = Restore last
"P" = (P)LAY | deleted event(s)
"R" - (R)ECORD | "M" = Select (think (M)ark)
"S" = (S)TOP | "U" = (U)nmark
"(" = BACK | "N" = U(n)do
| "C" = S(c)roll
RightAmiga-"L" = (L)oad Sequence | "G" = (G)rid
RightAmiga-"S" = (S)ave Sequence | SHIFT-"P" = (P)arams
RightAmiga-"N" = (N)ew Sequence | SHIFT-"R" = (R)epeat
RightAmiga-"/" = Select Sequence | "Q" = (Q)ueit
| SPACE BAR = PAUSE
| "P" = (P)LAY
| "R" = (R)ECORD
| "S" = (S)TOP
| ")" = STEP
| "(" = BACK
RightAmiga-"L" = (L)oad Sequence | RightAmiga-"L" - (L)oad
RightAmiga-"S" = (S)ave Sequence | RightAmiga-"SA" = (S)ave
RightAmiga-"N" = (N)ew Sequence | RightAmiga-"X" = E(x)it
RightAmiga-"/" = Select Sequence |
RightAmiga-"T" = S(t)ore Sequence | AMIGA SAMPLES PAGE
RightAmiga-"R" = (R)ecall Sequence |
RightAmiga-"X" = E(x)it Editor | ESC (Escape key) = All notes off
RightAmiga-"B" = (B)ar Editor |
RightAmiga-"E" = (E)vent Editor | RightAmiga=-"I" = Load (I)FF Sample
RightAmiga-"K" = Cut (Kut) | RightAmiga "X" = Load Soni(x) Sample
RightAmiga-"C" = (C)opy | RightAmiga "V" = Sa(v)e IFF Sample
RightAmiga-"D" = (D)elete |
RightAmiga-"P" = (P)aste | CusorUp = Move up through sample
| list
RightAmiga-"A" = Select (A)ll | CursorDown = Move down through
| sample list
|
CursorUp = Move up through event list | LIBRARIAN PAGE
CursorDown = Move down through event |
list | ESC (Escape key) = All notes off
CursorLeft = Move left through current| event
| "S" = (S)END
CursorRight = Move right through | "R" = (R)ECEIVE
current event | "A" = (A)LL
SHIFT-CursorUp = Page up through list | "V" = PRE(V)IEW
SHIFT-CursorDown = Page down through | "P" = (p)rogramme:
list | "E" = (E)dit Entry
|
QUANTIZER | RightAmiga-"N" = (N)ew
| RightAmiga-"O" = L(o)ad
"Q" = (Q)UANTIZE | RightAmiga-"V" - Sa(v)e
"C" - (C)ANCEL | RightAmiga-"C" = (C)lose
|
KEYMAP EDITOR | PROTOCOL EDITOR
|
ESC (escape key) = All notes off | RightAmiga-"L" = (L)oad
"U" = (U)NDO | RightAmiga-"S" = (S)ave
"C" = (C)ANCEL | RightAmiga-"X" = E(x)it
"O" = (O)K |
"H" = S(H)OW |
"R" = (R)ANGE |
"S" = (S)ET |
"1" = Keymap (l) |
"2" = Keymap (2) |
"3" - Keymap (3) |
"4" = Keymap (4) |
WHAT IS AN EDITOR?
An editor provides a way to look into a sequence and manipulate the
contents; it lets you "get at the guts" of a sequence. An editor may be
used to correct a prerecorded sequence, or to create a new sequence from
scratch.
WHAT IS A SEQUENCE?
A sequence is a list of things-to-do and when-to-do-them. These things-
to- do are called "events". Events play notes, send programme changes,
change the tempo, etc. When Music-X plays a sequence, it reads through
the its and executes each event at the proper time.
EVENT PARAMETERS
Each event can have multiple attributes or properties. These properties
are called "parameters". For example, a single note event has the
parameters of start time, pitch, duration, MIDI channel, attack velocity,
and release velocity.
TWO EDITORS
Music-X has two sequence editors, the Bar Editor and the Event Editor.
Each editor provides a different way to look at the same events. One can
switch between the Bar Editor and the Event Editor freely, using each for
its strengths.
EDITING SINGLE EVENTS
Many events are displayed at once in the editor screens. In order to
change the parameters of a single event, you first pick it out of the
crowd. That event then becomes the "current event". The controls in
each editor are designed to automatically configure themselves to the
parameters of the current event. To edit the parameters of a single
event, you make it the current event and then tweak the controls.
EDITING MULTIPLE EVENTS
It is possible to change the parameters of a group of events all at the
same time. In order to do this the group must first be defined. There
are two main ways to do this. The first way is to "select" the desired
events individually until the group is complete. The second way is to
"mark" a region of time. These methods are explained in more detail
later. Once the group is defined, special editing functions can be
called that operate on the group as a whole.
THE EDIT BUFFER
When you first choose to edit a sequence, by clicking EDIT in the
Sequencer Page, a copy of the current sequence is written into the Edit
Buffer and you are moved into one of the editors. The editors are then
used to make changes to the Edit Buffer without affecting the original
sequence. It is safe to experiment. When satisfied with the changes,
you store the newly edited version of the sequence back over the
original.
*Note: The Edit Buffer is the same thing as the Record Buffer. In fact
it is possible to edit the Record Buffer immediately after recording,
without first storing it to sequence memory. Simply click EDIT from the
sequencer page after recording, and when the safety prompt appears, click
the EDIT IT option to edit the current contents of the Record Buffer.
(See Sequencer Page / EDIT)
BAR EDITOR OVERVIEW
In the Bar Editor, notes appear as coloured bars - thus the name! (Not
to be confused with "bar" meaning "measure".)
The Bar Editor displays events graphically, as icons positioned in a
two- dimensional time/pitch graph. Events can be added to, removed from,
and repositioned in the graph using the mouse. This makes editing a
sequence in the Bar Editor rather like using a paint programme; notes can
be "painted" onto the score using the mouse as a brush.
The rest of the Bar Editor chapter explains all the features of the Bar
Editor Page one by one, roughly in the order that they are found on the
screen (left to right, top to bottom).
TITLEBAR
The title bar is displayed along the top of all Music-X pages to show
which page is currently being used. In the Bar Editor, the name of the
sequence currently being edited appears here as well, following the word
Sequencer:
The Title Bar becomes the Menu Bar, containing menu titles, when the
right mouse button is pushed. To access any menu on any page, press the
right mouse button and point to the desired menu title in the Menu Bar.
The chosen menu will "pull down", listing the available menu items. To
chose a menu item, point to it, and release the right mouse button while
the item is highlighted.
FILEMENU
The File Menu is used to move whole sequences in and out of the Edit
Buffer. Sequences can be moved to and from disk using save and select.
This menu is available from both editors and function identically in both
cases.
Following are descriptions of the items available in the File menu, and
the functions that they initiate.
Load...
(RightAmiga-"L" from the keyboard)
This function loads a previously saved sequence file into the Edit
Buffer from disk so that it may be edited. The previous contents of the
Edit Buffer are lost. Choosing Load... calls the File Requester. Use the
File Requester to locate the sequence file on disk, then click OK to load
the file. Otherwise, click CANCEL to return to the editors without
loading.
(See File Requester chapter).
Save...
(RightAmiga-"S" from keyboard)
This item saves the contents of the Edit Buffer to disk in a sequence
file.
Choosing Save... calls the File Requester. Use the File Requester to
locate the drawer to save your file in. Then use the File Requester to
name your new file. The recommended file extension for sequence files is
".Seq". Click OK to save the file, or click CANCEL to return to the
editors without saving.
(See File Requester chapter)
Saving a sequence file also creates an icon for that file in the same
drawer. When seen from the Workbench, the icons for sequence files look
the same as performance file icons - like little audio cassettes.
*Note: A sequence file contains one sequence only. Multiple sequences
may be saved in a performance file.
(See Sequencer Page / File Menu / Save Performance)
New
(RightAmiga-"N" from the keyboard)
This function erases the current contents of the Edit Buffer leaving a
new blank sequence containing only an End event.
A blank sequence is a good starting place when building a sequence from
scratch. Events can then be added one by one using the editor as a
compositional tool.
Choosing New first calls a safety prompt to prevent accidental loss.
Click No to back out safely. Otherwise, click Yes to proceed. The Edit
Buffer is then erased.
PROGRAMME CHANGE
When this item is checked, Programme Change events will be displayed.
Programme Change events appear as text written in the score, coloured
according to their MIDI channel. The abbreviation "PGM:" is followed by
the programme number. Example: PGM:090.
CHANNEL A.T.
Read this menu items as "Channel Aftertouch". When this item is
checked, Channel Aftertouch events are displayed. Aftertouch events
look rather like pins; they are displayed as dots supported by lines
connected to the bottom of the score window, coloured according to their
MIDI channel. The height of each dot shows the relative aftertouch
pressure.
Polyphonic A.T.
Read this menu item as "Polyphonic Aftertouch". When this item is
checked, Polyphonic Aftertouch events will be displayed. Both types
of aftertouch, as well as Control Change events, look the same. When
PLYPHONIC A.T. is turned on, the other two are turned off.
CONTROL CHANGE
When this item is checked, Control Change events will be displayed.
Control Change events are displayed the same way as the two Aftertouch
types. When any of the three are turned on, the other two are
automatically turned off.
Pitch Bend
When this item is checked, Pitch Bend events will be displayed. Pitch
Bend events appear as small diamonds coloured according to their MIDI
channel.
System Exclusive
When this item is checked, System Exclusive events will be displayed.
System Exclusive events appear as small black vertical dashes spanning
the height of about two pitch lines.
Modules Menu
The MODULES menu is where access is given to externally loaded editing
modules. These modules are small programmes that operate on the data in
the Edit Buffer in specialways. They can be called and used from either
editor. Three editing modules are included with Music-X as released.
The menu items that call them are:
QUANTIZE.....
SCALE VELOCITY.....
SCALE AFTERTOUCH.....
The following three subchapters describe these Modules.
Quantizer Module
To call this module from within either editor, chose QUANTIZE... from
the modules menu. The Quantizer is used to alter (correct) the timing of
events in a sequence.
The Quantizer is so named because it deals with quantities of time. Most
music assumes an underlying regular pulse on which the music is placed.
This is represented in Music-X by the "Grid". The Quantizer is used to
make sure the timed execution of notes is nice and close to this ideal
Grid. A quantized sequence will sound very even and regular.
The spacing between Grid points is called the "Grid Size". By using
different Grid sizes, you can get triplets, etc.
The Grid Size is set using the GRID tool found in the Tool List on the
right edge of the Bar Editor Page. This should be done before calling
the Quantizer, to set up the appropriate Grid and Duration. The
currently selected Grid Size gives an idealized timing reference used as
a target by the Quantizer when moving the start times of events.
Duration can be explained as the length of time between the start and the
end of a note (between the MIDI Note On and NOte Off). The currently
selected duration is used by the Quantizer as an idealized reference when
quantizing durations.
(see Bar Editor / Grid)
The Error Spectrum
Let us say we have set up a Grid of quarter notes. Each Grid point is
l92 clocks away from the next. (A clock is the smallest amount of time
possible in a Relative 192.
Durations l 2 3 4
Count
Grid -95 +96 { Error Spectrum
Illustration 7.5: Error Spectrum
These are out ideal "downbeats". Now imagine the area of time
surrounding each Grid point and extending halfway to the next Grid point
in both directions (earlier and later). This area of time creates a
margin around each Grid point that can be called the "error spectrum".
Any notes within the error spectrum are considered by the Quantizer to be
deviations from the ideal Grid point in the centre of the spectrum. The
further away from the centre that a note starts, the greater the timing
error. So, for instance, with our Grid of quarter notes, which is
l92 clocks wide, a note may start as early as 95 clocks before the beat
or as late as 96 clocks after the beat and still be quantized correctly.
After you have recorded a live performance, changes are that there will
be minor (or major) differences in timing between the way you played it
and the way you wish you had played it. The Quantizer will "comb"
through all the notes you played and move them to the closest Grid point.
Say you played a four-note arpeggio, approximately in quarter notes. And
let us assume that we have previously set a Grid of quarter notes (l92
clocks) by using the Grid requester. Here are the times before and after
quantization (shown as measures.beats.clocks).
Note Played Time Quantized Time
C4 000l.0l.0l0 000l.0l.000
E4 000l.02.004 000l.02.000
G4 000l.02.l90 000l.03.000
C5 000l.03.l65 000l.04.000
Knowing that each quarter note contains l92 clocks, you can see here that
the first note was played late by l0 clocks, the second was late by 4
clocks, the third note was early by 2 clocks and the fourth note was
early by 27 clocks. The Quantizer moved each one to the closest nearby
Grid point.
In the right half of the Quantizer Module's window is a column of buttons
for the various quantizing options. Following are descriptions of those
options.
QUANTIZE EVENTS Quantization Size: 0l92
Min Threshold: ( ) Start Only
00
Max Threshold: ( ) Duration Only
96
( ) Stop Only Effect %:
l00
( ) Start + Duration
(((((() Selected Events
( ) All
( ) Start + Stop
QUANTIZE
CANCEL
(((((() Start w/Duration
Illustration 7.6
START ONLY will move only the Note On portion of Note events to the
nearest Grid point and leave the Note Offs where they were. The
durations may be arbitarily changed.
DURATION ONLY will leave the NOte Ons where they are and move each Note
Off earlier or later in time to cause the duration of the note to resolve
to the nearest multiple of the chosen duration. Example: If you have
chosen eighth notes as your duration, and the original duration of a note
to be quantized is somewhere between a true quarter note (two eights) and
a true dotted quarter note (three eighths), then the Quantizer will move
the Note Off earlier or later to whichever value is closer; the note will
end up being exactly a quarter note or exactly a dotted note in duration.
STOP ONLY will move Note Offs to the closest Grid point. Note Ons are
not moved. Durations may be arbitarily changed.
START + DURATION will move the Note Ons towards the nearest Grid point
and adjust the Note Offs so that the duration is moved towards the
nearest multiple of the chosen duration. In most cases this identical to
START + STOP (see below). It would be different in cases where the Grid
Size and the chosen Duration are different. Suppose you set your Grid to
sixteenth notes and your Duration to whole notes. The Note Ons would be
moved to the closest Grid point but instead of adjusting the end points
to the nearest sixteenth note Grid, the Quantizer would adjust the end
points to make the overall duration of the note some multiple of whole
notes. This is a versatile feature. Experiment with different settings.
START + STOP will move both Note Ons and Note Offs towards the nearest
Grid point (even in opposite directions). Durations may be altered
arbitarily, but will end up as some multiple of the Grid Size (not
necessarily some multiple of the current Duration setting).
START w/DURATION means "start with same duration". In other words,
Quantize the start time but leave the duration the same". This will move
the Note Ons to the nearest Grid point and move the related Note Off in
the same direction by the same amount, leaving the overall duration of
the note the same as it was originally played. This is good for
correcting the timing of a phrase while staying close to the original
articulation. The gaps between notes retain most of their original feel;
legato or staccato sections will still sound legato or staccato.
In the left half of the Quantizer Module's window are three virtual
sliders that limit the overall effect of quantization.
Minimum Threshold: This slider tells the Quantizer at what point along
the error spectrum to start quantizing. You can choose NOT to quantize
rhythms that are within a certain number of clocks from the Grid centre,
early or late. This is like saying, "If it is close enough already, let
us leave it alone so it does not sound too robotic!" You can set the
threshold from 000 clocks to l/2 the current Grid Size or Duration,
whichever is bigger. Example: 000 to 96 clocks are available when
quantizing quarter notes (a quarter note is l92 clocks). Setting a
minimum threshold of 5 will only quantize notes occurring at 5 clocks or
further from the Grid centre.
Maximum Threshold: This slider tells the Quantizer at what point along
the error spectrum to stop quantizing. You can choose to leave rhythms
as they are if they are beyond a certain number of clocks from the Grid,
early or late. This is like saying, "If it is THAT far off, I must have
meant it!". Possible settings range from 000 clocks to l/2 the current
duration or current Grid Size whichever is bigger. Example: 000 to 24
clocks are available when quantizing sixteenth notes (a sixteenth note is
48 clocks). Setting a maximum threshold of l0 would only quantize notes
occurring at l0 clocks or closer from the Grid centre.
Effect %: Read this slider as "Effect Percent". This slider lets you
tell the Quantizer to only partially quantize the notes; to just move the
notes part of the way towards the nearest Grid or Duration. If your note
is l0 clicks away from the Grid and you choose a 50 percent effect, the
note will be moved to 5 clicks away from the Grid. If you still want it
closer, run the Quantizer again, the note will be moved a little closer
each time. It is like saying "The track is pretty close as it is. I
just want it a little tighter without making it sound stiff". If you are
quantizing Durations, then the effect percent slider will partially
quantize them as well.
Below the sliders are two switches that determine which overall group of
events will be considered for quantization.
Selected Events When this switch is on, only those events currently
Selected in the sequence, or those events within a Marked region of time
will be quantized according to the parameters set above. If no events
are currently Selected, or Marked, and this switch is on, then no effect
will be herd. When the SELECTED EVENTS switch is on, the ALL switch (see
below) is automatically turned off.
(See Bar Editor / Select)
(See Bar Editor / Mark)
ALL When this switch is on, all the events in the current sequence will
be quantized according to the parameters set above. Actually, only Note
events and certain Music-X events will be affected. Everything else is
left along automatically. It is assumed, for instance, that nobody wants
to quantize pitch bend information.
(See Bar Editor / Event Types)
QUANTIZE. This button, when clicked, causes the Quantizer to go ahead
and quantize according to the parameters set up in the other controls.
When done setting up the parameters, click CANCEL or press the "C" key to
safely exit the Quantizer.
Velocity Scaling Module
This Module can be called and used from either editor by shoosing SCALE
VELOCITY... from the Modules menu.
The Volocity Scaling module is used to alter the attack and release
velocities of notes in a sequence. It can operate on the whole sequence
or on any set of two or more notes within the sequence.
WHAT IS VELOCITY?
Attack velocity and release velocity are two of the parameters
associated with a Note event and are sent in MIDI NOte On and Note Off
messages respectively.
The attack velocity of a note relates to how fast the key was pressed on
the mother keyboard. (This does not mean a faster musical tempo, but
rather how fast the key travels from full up to full down position. Most
performers think of this as how "hard" they hit the keys.) Various
synths use this parameter to control either the timbre of the sound, the
volume of the sound, or both. Some synths use it to control the attack
rate or other portions of their envelope generators as well. The theory
is that if you play faster, you want the sound louder, brighter, and
quicker in responding. And if you play slower, you want it softer,
darker, and slower in responding.
The release velocity of a note relates to how fast you release the key
from the depressed position. Like attack velocity, this is used by
various synths to control the timbre, volume, or articulation of the
sound. Unfortunately, it is less widely supported by synth manufacturers
than attack velocity is. In the hardware of an electronic keyboard,
velocity is actually measured by cuasing a key to close or open two
separate switches, one near the beginning of travel and one near the end,
and noting the amount of time between the closings. It really has
nothing to do with how hard you play the key but rather, how fast.
VELOCITY SCALING
Initial Level: l00
Final Level: l00
Ramdom Factor: 000
((((() Attack Velocity
( ) Release Velocity
((((() Marked Events
( ) Entire Sequence
(SCALE) (CANCEL)
Illustration 7.7
Choosing SCALE VELOCITY... from the Modules menu opens the VELOCITY
SCALING widow. The scaling module affects the intensity of attack and
release velocities of Note events according to parameters set up in the
window by you. It is generally used to create crescendos (loud at the
beginning, soft at the end), or to raise or lower the velocity of a range
of notes all together.
Following are descriptions of the parameters in the VELOCITY SCALING
window.
Initial Level:
The Initial Level slider sets the desired percentage of current velocity
for the first (initial) note in a range.
This parameter together with the FINAL LEVEL parameter creates a ramp of
percentages over time from the initial event to the final event.
The slider ranges from 000 percent of current velocity to 300 percent of
current velocity. As each event is processed, its velocity will be
changed by the percentage dictated by the level of the ramp at that point
in time.
Final Level:
The Final Level slider sets the desired percentage of current velocity
for the last (final) note in a range.
If the Final level is set higher than the Initial level, then a
crescendo-type effect will be imparted.
If the Final level is set lower than the Initial level, then a
decrescendo-type effect will be imparted.
If the Final Level is the same as the Initial Level, then the ramp will
be flat. The effect will be one of an overall increase or decrease in
dynamics.
If both the Initial Level and the Final Level are set at l00 percent,
then no ramp is set up and no changes will be made to velocities by these
parameters. (However, the Random Factor parameter may still be live.)
Random Factor:
You can choose to have the velocities of Note events changed by adding a
random offset to each. This is a simple addition and has nothing to do
with percentages.
The slider sets the width of the range of possible offsets. A width of
l00 defines a range from -50 to +50 to be added to the current velocity.
Example: If a velocity is l00, and the slider is at l00, then the
possible new velocities are 50 through l50.
Try this on a constant-velocity high-hat part to hear what happens. Or
do it to keyboard parts entered with a non-velocity-transmitting other
keyboard to add some life (your sound module must support velocity
sensitivity for you to hear the effect).
Attack Velocity
Then this switch is on (highlighted), the attack velocities of affected
Note events will be scaled.
Release Velocity
When this switch is on, the release velocities of affected Note events
will be scaled. If this switch is off and the ATTACK VELOCITY switch is
off as well, then of course nothing will happen.
Marked Events
When this switch is highlighted, only Note events that are currently
Selected, or are within a Marked time region, will be affected by the
scaling operation. When this is on, the ENTIRE SEQUENCE option (see
below) is turned off.
(see Bar Editor / Select)
(see Bar Editor / Mark)
Entire Sequence
When this is highlighted, all the Note events in the sequence will be
affected by the scale operation (including any events after the end
line). When this is on, the MARKED EVENTS option is turned off.
Scale
Clicking the SCALE button tells the software to go ahead and do the
scaling operation using the parameters that have been set in this window.
Interesting effects can be accomplished by changing the ramp and running
the scaler again over the same section of a sequence. Complex dynamic
shapes can also be created by giving different sections individual
crescendos and decrescendos.
*Note: The possible complexity of combined scale operations means
scaling cannot be done by simple offset during playback; therefore, the
original data must be altered. Make sure you like the result before
leaving the editor and saving your changes.
Cancel
Clicking CANCEL will Scale nothing, close the Velocity Scaling window,
and return to the editor.
AFTER TOUCH SCALING MODULE
This Module can be called and used from either editor by shoosing SCALE
AFTERTOUCH from the MODULES menu.
The Aftertough Scaling module is used to alter the pressure values of
Aftertouch events in a sequence. It can operate on all the events in a
sequence or on any set of two or more Aftertouch events within the
sequence.
What is Aftertouch?
Aftertouch messages relate to how hard a key is pressed on the mother
keyboard after initially reaching the bottom of travel. Aftertouch
provides an extra means of expression after the note has been initially
struck. Some wind controllers send Aftertouch messages when breath
pressure is increased during a note. Various synths and sound modules
use Aftertouch to affect the timbre, volume, or pitch of the sound.
Generally, the harder you press, the "brighter" the sound gets, and
possibly the louder. Not all keyboards send or respond to Aftertouch
events. To hear the effects of the Aftertouch Scaling module, your sound
source must support Aftertouch.
There are two kinds of Aftertouch events, one that affects an entire MIDI
channel, and one that affects individual notes. The first is called
"Channel Aftertouch", and the second, "Polyphonic Aftertouch". Mother
keyboards that send Channel Aftertouch messages send messages containing
a value that represents the overall pressure being exerted across their
keyboard. Mother keyboard that support Polyphonic Aftertouch cn sense
pressures being applied to individual keys. Owners of mother keyboards
that support Channel Aftertouch will find that varying pressures applied
to a single note in the right hand will also affect the notes of a chord
being held with the left hand. Owners of mother keyboards that support
Polyphonic Aftertouch will find that each note in a chord can be affected
separately.
Choosing SCALE AFTERTOUCH... from the Modules menu opens the AFTERTOUCH
SCALING window. This window is used to set the parameters that shape the
way the module will alter the pressure values of Aftertouch events over
time. The parameters in the AFTERTOUCH SCALING window are similar to the
parameters in the VELOCITY SCALING window. Following are descriptions of
those parameters.
AFTERTOUCH SCALING
Initial Level: l00
Final Level: l00
Random Level: 000
((((() Channel Aftertouch
( ) Polyphonic Aftertouch
((((() Marked Events
( ) Entire Sequence
Illustration 7.8
INITIAL LEVEL
The Initial Level slider sets the desired percentage of current pressure
for the first (initial) Aftertouch event in a range.
This parameter together with the FINAL LEVEL parameter creates a ramp of
percentages over time from the initial event to the final event.
The slider ranges from 000 percent of current pressure to 300 percent of
current pressure. As each Aftertouch event is processed, its pressure
will be changed by the percentage dictated by the level of the ramp at
that point in time.
Final Level:
The Final Level slider sets the desired percentage of current Aftertouch
for the last (final) Aftertouch event in a range.
If the Final level is set higher than the Initial level, then a
crescendo-type effect will be imparted.
If the Final level is set lower than the Initial level, then a
decrescendo-type effect will be imparted.
If the Final Level is the same as the Initial Level, then the ramp will
be Flat. The effect will be one of overall increase or decrease in
dynamics.
If both the Initial Level and the Final Level are set at l00 percent,
then no changes will be made to pressures by the ramp parameters.
(However, the Random Factor parameter may still be live.)
Random Factor:
This slider sets the width of a random offset to be added to the
pressure values of Aftertouch events. The slider ranges from 0 to l00
A width of l00 defines a range from -50 to +50 to be added to the current
Aftertouch.
Example: If the pressure of an Aftertouch event is at l00, and the
slider is at l00, then the possible new velocities are 50 through l50.
Channel Aftertouch
When this switch is on (highlighted in purple), Channel Aftertouch
events will be affected by the scaling operation.
Polyphonic Aftertouch
When this switch is on (highlighted in purple), Polyphonic Aftertouch
events will be affected by the scaling operation.
*Note: The CHANNEL AFTERTOUCH and POLYPHONIC AFTERTOUCH switches are
independent and may be turned on or off separately. If both are on, then
both types of events will be affected by the scaling operation. If both
are off then the Aftertouch Scaling module can have no effect.
Scale
Clicking the SCALE button closes the window and initiates the scaling
operation using the parameters you have set up.
CANCEL
Clicking CANCEL will close window without scaling anything, and return
you to the editor.
Graphic Score Window
The graphic score window is the most prominent feature of the Bar
Editor, found just below the title bar and occupying most of the screen.
This is the work area, where the sequence is displayed and edited.
The graphic score window is basically a two dimentional time/pitch graph.
Time moves horizontally, left to right; pitch is vertical, with low notes
at the bottom and high notes at the top. The graphic score window
scrolls to reveal the changing portions of the sequence being played.
New events enter from the right and are seen and then heard as the
sequence plays.
*Note: Auto-scrolling can be turned off and on by clicking SCROLL along
the right edge of the Bar Editor Page.
(see Bar Editor / Scroll)
Following are descriptions of the features of the graphic score window.
Keyboard
Along the left edge of the window is a miniture graphic of a piano
keyboard. This is used to show the correspondence between note events in
the score window and normal keyboard notes.
Measure Lines
Vertical blue lines are used as a background in the score window to show
how musical time is mapped in the sequence. A dark line marks the
beginning of each measure, and lighter lines mark the beats within that
measure. The number of beats within a measure will depend on the current
time signature. As Time Signature Change events are played, the measure
and beat lines are redrawn to match the new time signature.
(see Bar Editor / Event Types / Time Signature Change)
When editing Absolute sequences, the measure lines are used to show clock
time instead of musical time. Light blue lines are spaced at one second
intervals.
Measure Numbers
Measure and beat numbers are written in white along the bottom of the
graphic display window. They correspond to the measure and beat lines
described above. Measure numbers always have four digits with no decimal
point. Beat numbers always start with a decimal point and are two digits
long.
When editing Absolute sequences, the measure numbers are replaced by a
single clock number written in the same format as the real time clock in
the Page. This number indicates the starting time for the current
portion of the sequence, starting at the left edge of the score window.
Pitch Lines
Horizontal pitch lines are drawn on the background of the score window
to show the possible positions for note events. The higher the position,
the higher the MIDI key number of that note, and the higher the pitch.
The pitch lines extend from the left edge of the score window and can be
matched against the mini keyboard. The lines correspond to the cracks
between the white keys of the keyboard. The spaces between the lines
correspond to the white keys.
The line below middle C is drawn in a darker blue for reference.
Time Line
When you click PLAY or RECORD in the Bar Editor, you will see a moving
vertical dotted green line cross the screen. This is the Time line.
The Time line shows where musical time is, in relation to the events in
the graphic display. You will hear the events as this line passes over
them. The line starts from the left edge of the screen and moves to the
right. When the line reaches the centre, the score starts moving under
it (assuming SCROLL has not been turned off). When you click PAUSE or
STOP, the time line will stay in its last position, making it useful for
locating mistakes by ear and eye.
(See Bar Editor / Scroll)
Octave Scroll Bar
Use this scroll bar, found at the bottom edge of the graphic score
window, to relocate the window to different parts of the sequence. The
scroll bar may be used at any time, except when SCROLL is on and the
sequence is playing. In that case the window scrolls automatically.
(See Bar Editor / Scroll)
Octave Scroll Bar
MIDI supports l28 possible key numbers. That's over ten octaves. Five
octaves (60 keys) can be shown in the graphic score window at one time.
Use the scroll bar on the right side of the graphic score window to
scroll the window vertically, bringing the outlying octaves into screen
view.
Time Scroll Bar
Use this scroll bar, found at the bottom edge of the graphic score
window, to relocate the window to different parts of the sequence. The
scroll bar may be used at any time, except when SCROLL is on and the
sequence is playing. In that case the window scrolls automatically.
(See Bar Editor / Scroll)
End Line
Every sequence has an End line. The End line appears as a stationary
vertical dotted yellow line and marks the last measure at the end of a
sequence. The End line is actually an event and can be dragged like any
other event. The length of a sequence is changed by moving the end line.
When the Time line reached the End line during playback, the sequence
stops or repeats. Events crossing the end line are allowed to play for
their full duration, rather than being artificially clipped, even while
the sequence repeats. Any events starting after the End line are
ignored.
Relative sequences always end on a measure boundary. If the End line
event is placed in the middle of a measure, then the sequence will finish
playing that measure before stopping or repeating.
Absolute sequences may end at any point.
Current Event
In the Bar Editor, the current event is chosen by clicking on it in the
score window. The event will change in appearance to show that it's
selected, and the Virtual Sliders and Channel Square will configure
themselves to the event's parameters.
(See Bar Editor / Virtual Sliders)
(See Bar Editor / Channel Square)
Dragging Events
One of the main ways to edit events in the Bar Editor is by dragging
them. Most events can be dragged horizontally and vertically with the
mouse. Dragging an event horizontally will change its location in time.
Dragging it vertically will change some parameter based on the type of
event. (For instance: Notes would be transposed in half steps, while
Aftertouch events would be increased or decreased by one pressure unit.)
When you drag a Note event, you will hear the note play at each new
position (unless QUIET is on). This is called "feedback", and is
provided to help the ear when editing a sequence.
(See Bar Editor / Options Menu / Feedback)
Dragging the current event beyond the left or right edge of the graphic
score window causes the window to scroll through time in the direction of
the event. Dragging the current event beyond the upper or lower edge of
the graphic score window causes the window to scroll by octaves in the
direction of the event.
For events with durations (Notes, Play Sequence, etc.), holding the SHIFT
key while dragging the event's tail will change the event's duration.
Cursor Keys
The cursor keys can be used in the Bar Editor as an alternative to
dragging the current event. This can sometimes give you more control
when making small precise movements. Once the current event has been
chosen, the CursorLeft and CursorRight keys will move the event
horizontally through time. The CursorUp and CursorDown keys will move
the current event vertically in whatever increments are applicable to
that event type.
For events with durations, the key combinations: (SHIFT-CursorLeft), and
(SHIFT-CursorRight) will alter the current event's duration as if its
tail was being dragged.
For Note events, the key combinations: (SHIFT-CursorUp) and (SHIFT-
CursorDown) will transpose the events by octaves.
*Note: When SNAP is on, events will be moved through time, and durations
may be changed in increments of the current Grid Size. When SNAP is off,
events can be moved through time and durations can be adjusted by
increments of one clock. Depending on the current ZOOM setting, this may
be too slight a movement to see. Watch the T= and D= indicators below
the score window to see exactly what you are doing.
(See Bar Editor / Snap)
(See Bar Editor / Grid)
(See Bar Editor / Zoom+ and Zoom-)
(See Bar Editor / T=)
(See Bar Editor / D=)
EVENT TYPES
The event types are like an alphabet from which a sequence is built.
Becoming familiar with all the event types, their effect, and how to
manipulate them is essential to an effective editing style. This
subchapter will lay out the event types in an orderly fashion so that
there is no doubt as to what they do. As you read this, please have the
software running, and feel free to experiment with each event type as it
is explained, by Adding it to the score, and then dragging the sliders
etc.
(See Bar Editor / Add)
There are three classes of events in Music-X.
First, Channel Events that send standard MIDI messages as described in
the MIDI specification. These are:
Name mnemonic
Note (NOTE)
Channel Aftertouch (CAT)
Polyphonic Aftertouch (PAT)
Control Change (CTL)
Programme Change (PGM)
Pitch Bend (PBEN)
Second, System Exclusive Events that send MIDI messages understood only
by the particular instruments they were intended for. System Exclusive
message formats are designed and specified by the instrument
manufacturers. All System Exclusive messages fall under the event type:
System Exclusive (SYSX)
Third, Music-X Events that control the sequencer is some way. These are:
End (END)
Splice (SPLI)
Set Repeats (REPT)
Stop (STOP)
Tempo Change (TEMPO)
Time Signature Change (TSIG)
Change Keymap (KMAP)
Play Sequence (PSEQ)
Mute Sequence (MSEQ)
Solo Sequence (SSEQ)
Mute Track (MTRK)
Solo Track (STRK)
The following is a series of paragraphs explaining what each event does,
how it looks in the graphic score window, what parameters it has, and how
to edit it in the Bar Editor.
Note
(mnemonic = NOTE)
Note events are Channel events that send MIDI Note On and Note Off
messages to MIDI synthesizers. Note events can also be redirected
internally to play Amiga samples.
Note events appear in the Bar Editor as coloured horizontal bars. When
selected or grabbed, they appear hollow.
Note events have six parameters: Start Time, MIDI channel, MIDI key
number (pitch), Attack Velocity, Release Velocity, and Duration. All of
these parameters may be edited in the Bar Editor.
The virtual sliders take on these parameters: MIDI key number, Attack
Velocity and Release Velocity. They are titled NT: (for "note"), ATV:,
and RVL: respectively.
StartTime: To change the starting time of a single note, drag it to the
left or right. The T= field will take on the start time of the current
event and change as the event is dragged. You can also move the current
Note event or a group of selected Note events through time with the
CursorLeft and CursorRight keys. The SNAP tool, when on, limits the
movements of Note events to increments of the current Grid Size. The
start times of groups of Note events may also be changed with the
Quantizer module.
(See Bar Editor / Snap)
(See Bar Editor / Quantizer Module)
MIDIChannel: The Channel number of the current Note event is indicated
by the Channel Square and by the colour of the event. To change the
channel of the current Note event or of a group of selected Note events,
click on the numbers in the Channel Square. The colour of a Note event
changes as its MIDI channel number changes.
(See Bar Editor / Channel Square)
*Note: All the screens in Music-X use eight colours. Two of those
colours (light blue and dark blue) are used for the background in the
graphic score window. That means there are six colours left over to
represent l6 MIDI channels. Higher channels use the same colours as
lower channels. When editing a sequence containing events on different
channels using the same colour, remember the Channel Square always shows
the channel number of the current event and that any channel(s) can be
temporarily locked out of the display using the LOCK tool.
(See Bar Editor / Lock)
MIDIKeyNumber: The MIDI key number of a Note event is represented by its
relative height in the score window. The higher the bar on the screen,
the higher the MIDI key number and, most likely, the musical pitch
(unless your synth is returned backwards). Possible key numbers range
from 000 to l27 (middle C is key number 60). The exact key number is
indicated by the virtual slider titled NT: To change the key number of a
Note event, drag it higher or lower in the score, or move the virtual
slider. You may also change the key numbers of the current Note or a
group of selected Notes with the CursorUp and CursorDown keys. Holding
SHIFT while using the CursorUp and CursorDown keys will transpose the
current event, or group of selected events, by octaves. You may also
move the current Note event to a particular key number by playing that
key on the mother keyboard. This last method can be used while in play.
Attach Velocity and Release Velocity:. Both of these parameters are
displayed in the same way and only one may be shown at a time. They are
switched using the DISPLAY menu. Velocities are displayed on the screen
as dark blue rectangles extending upwards from the bottom of the score.
The higher the rectangle, the faster the attack velocity. Each velocity
is displayed directly below or behind its related Note event. Two of the
virtual sliders configure to attack and release velocities and are titled
AVL:, and RVL:. The attach and release velocities of the current Note
event may be changed by moving these sliders. The velocities of a group
of Notes may be changed with the VELOCITY SCALING module. Attack
Velocities can range from 000 to l27. True Release Velocities can range
from 000 to l27. The slider also allows a release velocity of l28 to
mark a special case (see note below).
(See Bar Editor / Display Menu / Attack Velocity)
(See Bar Editor / Display Menu / Release Velocity)
(See Bar Editor / Velocity Scaling Module)
DURATION: A single Music-X Note event actually sends two MIDI messages:
a Note On message and a Note Off message. The duration of the Note event
is the length of time between the sending of these two messages. The
duration of Note events is represented by their size; the longer the bar,
the longer the note. The duration of the current Note event (when
grabbed) is shown in the D= field underneath the score window. Change
duration by holding the SHIFT key while dragging the note tail. The
durations of the current Note event or of a group of selected Note events
may be changed by holding the SHIFT key and using the Cursor-Left and
Cursor-Right keys. The SNAP tool limits the changing of durations of
Note events in increments of the current Duration, as set in the Grid
requester. The Durations of Note events may also be changed with the
Quantizer Module.
*Note: Many synthesizers send Note Off messages as Note On messages with
attack velocities of zero. This is a standard technique that makes the
MIDI data stream more efficient by eliminating the need to change the
"running status". Music-X records Note Offs in whichever form it
receives them. A Music-X Note event will show a Release Velocity of l28
if the Note Off was received as a Note On with zero velocity. This value
of l28 would be illegal in MIDI, and is only used as a "flag" by Music-X
so it knows to send the Note Off as a Note On during playback. Any other
release velocity would cause the Note Off to be sent normally. This
parameter is fully editable the same as any other; a Note Off recorded in
one form may be changed and played back in the other form.
Channel Aftertouch
(mnemonic = CAT)
Channel Aftertouch events send Channel Aftertouch messages to MINI
instruments.
Channel Aftertouch events appear as coloured dots connected by vertical
lines to the bottom of the score window. When grabbed or selected, the
dots appear hollow.
Channel Aftertouch events have three parameters: Start Time, MIDI
Channel, and Pressure.
One virtual slider takes on the Pressure parameter and is titled PRS:
The other sliders are ignored.
START TIME: To change the start time of a Channel Aftertouch event, grab
its head (the dot) and drag it horizontally. After a Channel Aftertouch
event has been grabbed, its start time will be indicated in the T= field
below the score window. The start time of the current Channel Aftertouch
event or of a group of selected Channel Aftertouch events may also be
changed with the CursorLeft and CursorRight keys. (The movements of
Channel Aftertouch events are not affected by SNAP.)
MINI CHANNEL: The channel number of the current Channel Aftertouch event
is indicated by the Channel Square and by the colour of the event. To
change the MIDI channel number of the current Channel Aftertouch event or
of a group of selected Channel Aftertouch events, click on any number in
the Channel Square. The colour of a Channel Aftertouch event will change
as its MIDI channel number changes.
PRESSURE: This parameter relates to how hard the key is being pressed
after reaching the bottom of travel. It can range from 000 to l27. This
value is indicated by the relative height of the Channel Aftertouch event
in the score window and by the virtual slider. To change the Pressure
value of a Channel Aftertouch event, drag the event vertically, or move
the virtual slider titled PRS:, or press the CursorUp and CursorDown
keys. The pressure parameter of Channel Aftertouch events may also be
manipulated using the Aftertouch Scaling Module.
(See Bar Editor / Aftertouch Scaling Module)
POLYPHONIC AFTERTOUCH
(mnemonic = PAT)
Polyphonic Aftertouch events send Polyphonic Aftertouch messages to MIDI
instruments.
Polyphonic Aftertouch events are like Channel Aftertouch events except
that different keys may have different pressure values. Therefore, they
have an extra parameter for MIDI key number.
Polyphonic Aftertouch events look the same as Channel Aftertouch events;
coloured dots connected by vertical lines to the bottom of the score
window that become hollow when grabbed or selected. Only one form of
Aftertouch event (Channel or Polyphonic) may be shown in the graphic
score window at a time. The DISPLAY menu is used to control which event
type is to be shown.
Polyphonic Aftertouch events have four parameters: Start Time, MIDI
Channel, MIDI key number, and Pressure.
Two virtual sliders take on the parameters of MIDI key number, and
Pressure. They are titled NT:, and PRS:, respectively. The last slider
is ignored.
START TIME: The start time of the current Polyphonic Aftertouch event is
indicated in the T= field. To change the start time of a polyphonic
Aftertouch event, grab its head and drag it horizontally. The start time
of the current Polyphonic Aftertouch event or of a group of selected
Polyphonic Aftertouch events may also be changed with the CursorLeft and
CursorRight keys. (The movements of Polyphonic Aftertouch events are not
affected by SNAP.)
MIDI CHANNEL: As with all channel events, the channel number of the
current Polyphonic Aftertouch event is indicated both by the Channel
Square, and by the colour of the event. To change the MIDI channel
number of the current Polyphonic Aftertouch event or of a group of
selected Polyphonic Aftertouch events, click on the numbers in the
Channel Square. The colour of a Polyphonic Aftertouch event will change
as its MIDI channel number changes.
MIDI KEY NUMBER: The MIDI key number of the current Polyphonic
Aftertouch event is indicated by the virtual slider titled NT:. To
change the MIDI key number, move the slider. Possible key numbers range
from 000 to l27.
PRESSURE: The pressure value is indicated by the relative height of the
Polyphonic Aftertouch event in the score window, and by the virtual
slider. Possible pressure values range from 000 to l27. To change the
pressure value of a Polyphonic Aftertouch event, drag the event
vertically or move the virtual slider titled PRS:. You may also change
the pressure value with the CursorUp and CursorDown keys. The pressure
values of a group of Polyphonic Aftertouch events may be manipulated with
the Aftertouch Scaling Module.
(See Bar Editor / Aftertouch Scaling Module).
CONTROL CHANGE
(mnemonic = CTL)
Control Change events send Control Change messages to MIDI instruments.
A Control Change message causes the sound of an instrument to change as
if one of the controllers were moved on the instrument itself.
Controllers are things like the modulation wheel, breath controller,
sustain pedal, etc. Each controller is identified by a number. This
family of controllers does not include the front panel switches used to
modify synthesizer parameters making up a programme (VCF cutoff, envelope
levels, etc.). Synthesizer parameters can be controlled via System
Exclusive messages.
Control Change events appear as coloured dots connected by vertical lines
to the bottom of the score window, and become hollow when grabbed or
selected. Control Change events are displayed using the same graphic
icons as Channel Aftertouch and Polyphonic Aftertouch events. To avoid
confusion, only one of these three event types may be displayed and
edited at a time. The Display menu is used to control which type is
shown.
(See Bar Editor / Display menu)
Control Change events have four parameters: Start Time, MIDI Channel,
Controller Number and Value.
Two virtual sliders take on the parameters of Controller Number, and
Value. They are titled CTL:, and VAL: respectively. The last slider is
ignored.
START TIME: The start time of a Control Change event can be changed by
dragging the event horizontally. The CursorLeft and CursorRight keys
will move the current event through time as well. The start time of the
current Control Change event is indicated in the T= field below the score
window, and changes as the event is dragged. (The movements of Control
Change events are not affected by SNAP.)
CONTROLLER NUMBER: Each controller is identified by a number. This
number specifies the particular controller you wish to change with this
message. The controller number for the current Control Change event is
indicated by the virtual slider titled CTL:. To change this parameter,
move the slider. The range of the slider is from 000 to l27.
VALUE: The Value parameter represents different things depending on the
controller number, but iin white lettering. Second, the virtual slider
titled SEQ: shows the sequence number for the current event. Third, the
event's vertical position in the score window gives some indication as to
which sequence will be played. There are not enough vertical screen
positions to represent all 250 possible sequences. Therefore, Solo
Sequence events have been limited to the first l6 vertical positions. To
change the sequence number of the current event, move the virtual slider
or press the CursorUp key or the CursorDown key.
DURATION: The duration of the Solo Sequence event determines the length
of time that the sequence will stay soloed. As with Note events, the
Duration of a Solo Sequence event is indicated by the length of its tail.
The duration of the current Solo Sequence event (when grabbed) is also
indicated by the D= field underneath the score window. To change the
duration of a Solo Sequence event, hold the SHIFT key while dragging its
tail. You may also change the durations of the current Solo Sequence
event or of a group of selected Solo Sequence events by holding the SHIFT
key and using the CursorLeft and CursorRight keys. The SNAP tool limits
the changing of durations of Solo Sequence events to increments of the
current Duration, as set in the Grid Requester. The Quantizer module may
also be used to alter the durations of Solo Sequence events.
MUTE TRACK
(mnemonic = MTRK)
As explained in the Sequencer Page chapter, a track is something that
plays a sequence. Music-X has 20 tracks. As a sequence is initiated
during play or record mode, that sequence is assigned to the next
available track and is played by that track. A Mute Track event causes
Music-X to temporarily mute a particular track, and consequently the
sequence being played by that track, during play or record modes.
Like Mute Sequence events, Mute Track events appear as yellow horizontal
bars (yellow represents "mute"). When grabbed, or selected, Mute Track
events appear black with yellow borders.
Mute Track events have three parameters: Start Time, Track, and
Duration.
One of the virtual sliders takes on the Track parameter, and is titled
TRK:. The other sliders are ignored.
START TIME: To change the start time of a Mute Track event, drag it
horizontally, or, for the current Mute Track event or group of selected
Mute Track events, press the CursorLeft and CursorRight keys. The start
time of the current Mute Track event (when grabbed) will also be
indicated by the T= field below the score window. The SNAP tool, when
on, limits the movements of Mute Track events to increments of the
current Grid Size. The Quantizer Module can also be used to alter the
start times of Mute Track events.
TRACK: This parameter determines which of the 20 tracks in Music-X will
be muted by the current Mute Track event. This parameter is indicated in
a few ways. Firs, the track number is written on the event itself, in
red lettering. The text "TRACK = #" is followed by the track number.
For example, "TRACK = #6". Second, the virtual slider titled TRK: shows
the track number for the current event. Third, by the event's vertical
position in the score window. Mute Track events have 20 vertical
positions, one for each track. To change the sequence number of the
current event, drag the event vertically, move the virtual slider, or
press the CursorUp and CursorDown keys.
DURATION: The duration of the Mute Track event determines the length of
time that the track will stay muted. As with Note events, the Duration
of a Mute Track event is indicated by the length of its tail. The
duration of the current Mute Track event (When grabbed) is also indicated
by the D= field underneath the score window. To change the duration of a
Mute Track event, hold the SHIFT key while dragging its tail. You may
also change the durations of the current Mute Track event or of a group
of selected Mute Track events by holding the SHIFT key and using the
CursorLeft and CursorRight keys. The SNAP tool limits the changing of
durations of Mute Track events to increments of the current Duration, as
set in the Grid requester. The Quantizer module may also be used to
alter the durations of Mute Track events.
SOLO TRACK
(mnemonic = STRK)
A Solo Track event causes Music-X to temporarily mute all 20 tracks
except one, during play or record modes.
Like Solo Sequence events, Solo Track events appear as red horizontal
bars (red represents "solo"). When grabbed, or selected, Solo Track
events appear black with red borders.
Solo Track events have three parameters: Start Time, Track, and
Duration.
One of the virtual sliders takes on the Track parameter, and is titled
TRK:. The other sliders are ignored.
START TIME: To change the start time of a Solo Track event, drag it
horizontally, or, for the current Solo Track event or group of selected
Solo Track events, press the CursorLeft and CursorRight keys. The start
time of the current Solo Track event (when grabbed) will also be
indicated by the T= field below the score window. The SNAP tool, when
on, limits the movements of Solo Track events to increments of the
current Grid Size. The Quantizer Module can also be used to alter the
start times of Solo Track events.
TRACK: This parameter determines which of the 20 tracks in Music-X
will be soloed by the current Solo Track event. This parameter is
indicated in a few ways. Firs, the track number is written on the event
itself, in white lettering. The text "TRACK =#" is followed by the track
number. For example "TRACK =#7". Second, the virtual slider titled TRK:
shows the track number for the current event. Third, the event's
vertical position in the score window indicates which track is to be
soloed. Solo Track events have 20 vertical positions, one for each
track. To change the sequence number of the current event, drag the
event vertically, move the virtual slider, or press the CursorUp and
CursorDown keys.
DURATION: The duration of the Solo Track event determines the length of
time that the track will stay soloed. As with Note events, the Duration
of a Solo Track event is indicated by the length of its tail. The
duration of the current Solo Track event (when grabbed) is also indicated
by the D= field underneath the score window. To change the duration of a
Solo Track event, hold the SHIFT key while dragging its tail. You may
also change the durations of the current Solo Track event or of a group
of selected Solo Track events by holding the SHIFT key and using the
CursorLeft and CursorRight keys. The SNAP tool limits the changing of
durations of Solo Track events to increments of the current Duration, as
set in the Grid requester. The Quantizer module may also be used to
alter the durations of Solo Track events.
TOOL LIST
Along the right edge of the Bar Editor Page (shown in Figure 7.l at the
beginning of this chapter) is a list of words used during editing. Some
are mode switches, some open windows where parameters can be tweaked, and
some are direct commands to Music-X that cause things to happen
instantly. They offer the most often used functions in the Bar Editor
and are provided next to the score window for easy access. We will call
these words "tool words" and the list, the "tool list".
In general, tool words are active when highlighted in white, and inactive
when written in blue. Tool words are activated, deactivated, or used by
clicking them.
The following l7 subchapters give an explanation of each tool word and
any windows or parameters associated with that word.
SETSIG
("/" from the keyboard)
Read this tool word as "Set Signature". SetSig is used when editing
sequences containing Time Signature Change events to resize the measure
and beat lines to the current time signature.
Normally, measure and beat lines are resized automatically while the
sequence plays to confirm with Time Signature Change events as they are
encountered. When the sequence is stopped, the measure and beat lines
stay sized to the last valid time signature. If you then manually scroll
to a portion of the sequence with a different time signature, the measure
and beat lines may appear incorrect. Playing from that point would
resize the lines, but if you do not want to play the sequence, you can
use SetSig to resize the measure and beat lines to the new time
signature.
If there are multiple Time Signature Change events currently in the
window, then SetSig uses the last Time Signature Change event before the
middle of the window as the current time signature when resizing measure
and beat lines.
(See Bar Editor / Graphic Score Window / Measure Lines)
(See Bar Editor / Event Types / Time Signature Change)
Time Signature Display
Under the SetSig tool is a display showing the current time signature.
This display is automatically updated as Time Signature Change events are
encountered in a sequence. If there are no Time Signature Change events
in the sequence, then the display shows the global time signature.
(See Bar Editor / Event Types / Time Signature Change)
This display is an indicator only and cannot be edited directly.
*Note: The global time signature can be changed from the Sequencer Page,
or from the Prams window in the Bar Editor, or by inserting a Time
Signature Change event into the sequence.
(See Sequencer Page / Time Signature Window)
(See Bar Editor / Params / Time Signature).
Add
("A" from the keyboard)
Clicking on ADD puts the Bar Editor into "Add mode". Add mode makes it
possible to put new events into the sequence using the mouse.
While in Add mode, the word ADD stays highlighted in white. While you
are in Add mode, you can also grab, drag, and edit pre-existing events of
any type.
When you first click ADD, a requester appears whose title asks WHAT TYPE
OF EVENT?, and offers a list of the possible event types that can be
added to the score using the mouse.
Choose an event type by clicking on its name in the list. The chosen
event type will appear highlighted in white. After you choose an event
type, click on the OK button (or press the "O" key) to close the window
and return to the editor.
While in Add mode, you can add any number of events of the chosen type to
the sequence by clicking the mouse in an empty area of the graphic score
window. Each time you add a new event, that event becomes the current
event, and the virtual sliders or other applicable controls may be used
to edit it before adding another event.
Here is how to make sure the event goes where you want it to go: Each
time you click the left mouse button, a new event will appear attached to
the mouse pointer. Before releasing the mouse button, drag the event
into place. When you release the button, the event is entered into the
sequence. If you make a mistake, just grab the event again and drag it
to the right spot.
If the type of event being added is one that can have a duration (Note,
Play Sequence, tempo Change etc), then its default duration will be one
clock less than that of the current duration value, as set in the Grid
requester. The reason for this one-clock difference is to assure that
the MIDI Note Off of a previous event is sent before the Note On of the
next event. This assures the efficient use of voices when playing
sequences on multi-timbral sound modules.
WHAT TYPE OF EVENT?
NOTES
PROGRAMME CHANGE
CONTROL CHANGE
POLY AFTERTOUCH
CHAN. AFTERTOUCH
PITCH BEND
PLAY SEQUENCE
TIME SIG. CHANGE
TEMPO CHANGE
SET REPEATS
CHANGE KEYMAP
MUTE TRACK
SOLO TRACK
MUTE SEQUENCE
SOLO SEQUENCE
OK
Illustration 7.9: Event Type Requester.
*Note: If you wish, you can override this feature, when setting the
current Duration in the Grid requester, by increasing the chosen duration
by one clock before closing the requested. ADD will then subtract the
extra clock, leaving the intended duration.
(See Bar Editor / Grid)
*Note: Adding an event type to the score turns on the display of that
event type if it had been previously turned off in the display menu.
(See Bar Editor / Display Menu)
INSERT
("I" from the keyboard)
Clicking on INSERT puts the Bar Editor into "Insert mode". Insert mode
is similar to Add mode; it makes it possible to put new events into the
sequence using the mouse. The difference is that an amount of time equal
to the current Duration, as set in the Grid requester, is inserted into
the sequence along with each new event.
The tool word INSERT stays highlighted in white while the editor is in
Insert mode. While you are in Insert mode, you can also grab, drag, and
edit pre-existing events of any type.
When INSERT is first clicked, the WHAT TYPE OF EVENT? requester is
called. This window has been described above under ADD. Use this
requester to choose the type of event to be inserted. After you choose
an event type, and exit the requester, you are in Insert mode. Each time
you click the left mouse button in an empty portion of the graphic score
window, you will cause a new event of that type to appear attached to the
mouse pointer. Before you release the button, you may move the mouse to
drag the event to where you want it. The event will be inserted into the
score when the mouse button is released.
When you are in Insert mode, any events entered with the mouse will push
all following events back in time (later) to make room for the new event.
The amount of time inserted is equal to the current Duration, as set in
the Grid requester. No time is inserted for events with no duration (as
with Pitch Bend).
As with Add mode, the durations of new inserted events are actually one
clock less than the current Duration setting, for voice efficiency when
using MIDI sound modules.
(See Bar Editor / Grid)
MOVE
("C" from the keyboard)
Clicking on MOVE puts the Bar Editor into "Move mode". Move mode is used
to drag, or edit pre-existing events in the score. Normally, if you are
in ADD or INSERT mode, you can drag events too. However, MOVE is used
when you want to avoid the possibility of accidentally entering a new
event by clicking on a blank area of the score.
While in Move mode the word MOVE stays highlighted in white.
To drag an event, click on it an hold the left mouse button. The event
will become the current event and appear hollow or reversed. As long as
you hold the mouse button, the event will be attached to the mouse
pointer. Moving the mouse pointer moves the event as well. Once an
event becomes the current event, the virtual sliders and other controls
can be used to edit its parameters.
REMOVE
("V" from the keyboard)
Clicking on REMOVE puts the Bar Editor into "remove mode". Remove mode
is used to remove or erase pre-existing events from the sequence one by
one.
The tool word REMOVE stays highlighted in white as long as remove mode is
on.
While in Remove mode, clicking on any event in the graphic score window
will remove it from the score.
If you remove an event accidentally, you can restore it by pressing the
HELP key on the Amiga keyboard. Repeatedly pressing the HELP key will
restore up to l6 events previously removed from the sequence.
*Note: Changing between editors resets the HELP key. You must restore
accidentally removed events before switching editors.
LOCK
(SHIFT-"L" from the keyboard)
Clicking on LOCK puts the Bar Editor into "Lock mode". Lock mode is used
in conjunction with the Channel Square to hide some of the events in a
sequence so you can more easily edit the events you are interested in.
This is handy when working with composite sequences, containing data on
many MIDI channels.
The tool word LOCK stays highlighted in white while the editor is in Lock
mode. While you are in Lock mode, you can also grab, drag, and edit pre-
existing events of any type.
While LOCK is on (highlighted), one can click on various channels in the
channel square (any except the current channel) to lock them out of the
bar graphic display. When a channel is locked, its number is shown in
red in the Channel Square. Any events on a locked-out channel are heard
but not seen. Clicking again on a locked channel unlocks it and lets any
events on that channel be displayed again.
(See Bar Editor / Channel Square)
Example: Locking out all but one channel.
Pick LOCK to enter Lock mode. LOCK will appear highlighted.
Pick on an event in the score whose channel you wish to see along. The
Channel Square will show that channel in white.
Pick on all the other channels in the Channel Square to lock them out.
(They will turn red).
Now only events on the current channel will be displayed and can be
edited.
To restore all the channels, click all the reddened channels in the
Channel Square. A quick trick that restores all locked channels is to
choose BAR from the edit menu. Since we are already in the Bar Editor,
this function will simply reinitialize the screen. Part of the
reinitializing process is to unlock all channels.
*Note: Various event types can also be temporarily hidden using the
Display menu.
(See Bar Editor / Display Menu)
SELECT
("E" from the keyboard)
Clicking SELECT puts the Bar Editor into "Select mode". The mouse then
becomes a tool for drawing boxes around events or groups of events to
"select" them for future group operations.
To select an event or group of events, simply click and hold the left
mouse button anywhere in the score window to define one corner of the
box. Now drag the pointer until you see the outline of a box appear and
expand. When you release the mouse button, any events within the box
will become selected, and the box will disappear. Selected events will
change in appearance to show that they have been selected. Some, like
Note events, appear hollow when selected. Others use reversed colours.
It is possible to draw boxes bigger than can be displayed on the screen
at one time. Simply move the mouse off the edge of the graphic score
window while dragging the corner of the box and the screen will auto-
scroll to follow you. You will find it quicker work to zoom out before
selecting events in large sections of time.
Selected events are cumulative. Selecting anew event does not de-Select
other events. This is handy when selecting individual notes out of a
cluster, as when picking out the inner voice of a trio where the three
parts overlap in range. One can move through the score, selecting a few
notes here and a few notes there until all the desired notes are
selected. (Since selection is cumulative, it is a good idea to use
UNMARK before selecting so that no previously selected events are
included in the group accidentally.)
See Bar Editor / Unmark)
*Note: It is not necessary to box a complete Note event to Select it.
But you must box at least the head of the note. This will come in handy
when Selecting notes with long duration.
After a group of events has been selected, many other editing functions
can be used to edit them collectively. For instance, clicking on the
MIDI Channel Square will change their MIDI channel assignments. Pressing
the CursorUp and CursorDown keys will transpose all selected (and
transposable) events by halfsteps. Pressing the CursorLeft and
CursorRight keys will move all the selected events through time in
increments of the current Grid Size when SNAP is on, and in increments of
one clock when SNAP is off. The cut and paste operations available in
the Options menu are all used in reference to a group of selected events.
The Quantizer, Velocity Scaler, and Aftertouch Scaler modules can all be
used to operate on selected events.
(See Bar Editor / MIDI Channel Square)
(See Bar Editor / Grid)
(See Bar Editor / Snap)
(See Bar Editor / Options Menu)
(See Bar Editor / Modules Menu)
MARK
("M" from the keyborad)
Clicking MARK puts the Bar Editor into "Mark mode". Mark mode is similar
to Select mode in that it defines a group of events for use in group
operations. The difference is that Mark mode deals with regions of time
and the events within that time, while Select mode only deals with the
events. This means that MARK can be used in conjunction with cut and
paste operations to splice sections of musical time together, as when
changing the order of measures in a sequence.
The tool word MARK stays highlighted in white while the editor is in Mark
mode.
Here is how to Mark a region of time:
Move the mouse pointer to the beginning of the section you wish to mark.
Pick and hold the left mouse button. A vertical magenta line will
appear, marking the beginning of the region. The T= field, below the
score window, will indicate the start time for the beginning of the
region.
Hold the mouse button and drag the pointer to stretch the magenta region
to the end of the section to be marked. If the region to be marked is
larger than the portion of the sequence shown on the screen, simply move
the mouse pointer off the edge of the graphic score window while
dragging, and the score window will auto-scroll to bring the needed
portions of the sequence into view. The D= field, below the score
window, will indicate the total duration of the marked area as it grows.
When the pointer is positioned over the end of the region, release the
mouse button. The region is now marked.
If you make a mistake in marking a region, click UNMARK (see below) and
start over.
An alternative method for marking large portions of time is to click once
at the beginning point, then scroll forward or play the sequence to find
the end of the section. Once the end is found, position the pointer over
the end point, hold the SHIFT key, and click to mark the entire region
between the two points.
*Note: When using MARK to move measures around, you will probably find
it handy to set the Grid Size to as large a value as practical and use
SNAP. Also when marking large portions of time, you will find it quicker
work if you zoom out (ZOOM-) first, so a larger portion of the sequence
can be seen in the window at once.
UNMARK
("U" from the keyboard)
The UNMARK tool word is a command that causes all currently selected
events to become deselected, or a currently marked region of time to
become unmarked. UNMARK is used to "clean the slate" before using either
SELECT or MARK, or after making a mistake while using either of these.
The word UNMARK only stays highlighted while the events are being
unmarked. Once they are unmarked, UNMARK returns to normal. UNMARK can
be used while in any mode.
ZOOM + ANDZOOM-
(SHIFT-"Z" from the keyboard)
Read these as "Zoom increase" and "Zoom decrease," or "Zoom in" and "Zoom
out". Use these tool words to change the time scale of the graphic
window display. This works similarly to a zoom lens on a camera; a
higher zoom gives a closer look at the subject, a lower zoom gives a
wider look at the surroundings.
There are 7 levels of Zoom; each level shows half or twice the time scope
of the neighboring Zoom level. Each time you click on ZOOM+ or ZOOM-,
the time scale displayed in the graphic score window is halved or
doubled.
These tool words are direct commands and may be used in any mode. They
stay highlighted temporarily, while the window is readjusted, then return
to normal.
Increasing zoom (ZOOM+) shows less actual time on the screen. This
allows mouse manipulations of data in resolutions as small as one or two
clocks. (Movements of exactly one clock can also be effected upon the
current event, or selected events, by using the CursorLeft and
CursorRight keys, while SNAP is off.) Decreasing zoom (ZOOM-) shows more
time on the screen. This allows macro-scaled manipulations (as when
cutting and pasting song sections) by showing many measures on the screen
at once.
(See Snap (below))
*Note: The pitch scale does not zoom. It always stays in scale with the
miniature keyboard graphic to the left of the graphic score window.
SNAP
(SHIFT-"S" from the keyboard)
SNAP is an optional mode switch, and may be used with any other mode.
SNAP was inspired by a similar function in CAD (Computer Aided Design)
programmes. It limits the placement of events in the score window to the
modes of an invisible "Grid". SNAP is turned off and on by clicking it.
When on, it appears written in white.
(See Bar Editor / Grid (below))
SNAP affects various editing procedures differently. The procedures that
SNAP affects are:
Adding or Inserting new events into the score.
Pasting the Clip into the score.
Changing the start times of pre-existing events in the score (moving
them).
Changing the durations of pre-existing events in the score.
Marking a region of time.
When Adding or Inserting new events, SNAP restricts them to being placed
on Grid points only, rather than being placed freely. When SNAP is off,
new events can be placed anywhere in time, down to a resolution of one
clock (l/l92 quarter note).
When pasting the Edit Clip into the score using PASTE, the start time of
the first event in the Clip is limited to Grid points only. All
following events in the Clip stay in their original relationship with the
first event. For example, when pasting a Clip containing two events an
eighth note apart while SNAP is on, the first event will be restricted to
Grid points and the second note will always be one eighth note later than
the first, regardless of what the Grid size is.
(See Bar Editor / Options Menu / Paste)
When pre-existing events are moved about in the score, SNAP allows them
to be moved in increments of the current Grid Size (rather than being
moved to Grid points specifically). That means that if the event was not
"right on the beat" before being moved, it will still have the same error
after being moved. This is good because events retain their original
rhythmic feel, as far as being a little early or late, while being moved
around in the score. This applies whether events are being dragged with
the mouse or moved with the cursor keys. When SNAP is off, the start
times of pre-existing events can be nicely adjusted down to a resolution
of one clock.
*Note: You can get some interesting rhythmic-offset effects with SNAP by
temporarily changing to an unusual Grid Size and moving a group of
selected notes with the CursorLeft and CursorRight keys while SNAP is on.
Example: Select a group of 6 quarter-note triplets in a drum sequence.
Change the Grid Size to eighth notes and turn SNAP on. Use the
CursorLeft key to move the selected triplet notes l eighth note earlier
in the score. Off beat triplets can give you that Latin timbale-solo
sound.
(See Advanced Users / Editing Tricks / Rhythmic Offsets)
When changing the durations of pre-existing events, SNAP allows them to
be changed in increments of the current duration. Example: If the
current Duration is set to quarter notes, then an eighth note in your
sequence could be stretched to become a dotted quarter note (l eighth
plus l quarter), but not a quarter note. As you dragged its tail with
the mouse, you would see it change suddenly (that is the "snap") from an
eighth note to a dotted quarter note. That is because SNAP prevented it
from changing by any less than a quarter note's duration. This applies
as well when using the cursor keys to change the durations of the current
event or group of selected events. When SNAP is off, the durations of
pre-existing events can be nicely adjusted down to a resolution of one
clock.
*Note: The current Duration is also set in the Grid requester.
When marking a region of time using MARK, SNAP restricts the edges of the
region to Grid points. As the region is dragged and expanded, it will
appear to increase in size in jumps. Setting the Grid Size to maximum
and turning SNAP on before cutting a song section will keep the section's
length to multiples of a measure and assure that when the section is
pasted back into the score, events moved aside to make room for the new
section will retain their original rhythmic identity. When SNAP is
turned off, regions of any size can be marked with one-clock accuracy.
QUIET
("Q" from the keyboard)
QUIET is an optional mode switch, and may be used with any other mode.
QUIET turns off the audible feedback heard when Note events are dragged
in the graphic score window.
While QUIET is on (highlighted), feedback is turned off. Click QUIET to
turn it on and off. QUIET does not affect the playback of events when
the editor is in play or record.
(See Bar Editor / Options Menu / Feedback)
An extra editing trick is possible when QUIET is turned on and Feedback
is defeated. While the sequence is playing, a new event may be added or
a pre-existing event may be grabbed without stopping the clock. As long
as you hold the left mouse button the event may be dragged to different
positions. Instead of Feedback playing the event each time it is moved
(as when QUIET is off) the event will be played each time the green Time
line passes over it. If the sequence is short and repeating, different
positions for the event can be tried and listened to as the sequence
repeats. As soon as you release the event, by releasing the mouse
button, the clock will stop and the event will be entered into the score
at the current position.
SCROLL
("L" from the keyboard)
SCROLL is an optional mode switch, and may be used with any other mode.
SCROLL controls the auto-scroll function of the graphic score window.
Click SCROLL to turn it on and off.
If SCROLL is on (highlighted), then when the editor is in play or record,
the graphic score window will automatically scroll along through the
score in musical time, showing new events approaching from the right and
passing through the time line as they are played.
If SCROLL is off, the score window will not automatically scroll as the
sequence is played, but may still be manually scrolled. When you first
click PLAY, the Time Line travels from the left edge of the screen and
continues off the right edge of the window and disappears. Events being
played off screen would be heard but not seen as the Time Line passes
through them. You might prefer to turn SCROLL off when working in high
zoom (closeup) since the screen would otherwise rapidly scroll away from
the area you want to see.
(See Bar Editor / Zoom+ and Zoom-)
GRID
("G" from the keyboard)
This tool word is used to call the Grid requester where the current GRID
SIZE and DURATION parameters may be altered.
The two parameters Grid Size and Duration are used by many other
functions in the Editors. Grid Size and Duration are used by SNAP. Grid
Size and Duration are both used by the Quantizer Module. Grid Size is
used by the STEP button when recording in step mode. Duration is used by
ADD and INSERT to set the durations of new notes being entered into the
score.
WHAT IS THE GRID?
The Grid is an invisible structure of time points mapped over a sequence
and used for reference when editing. The Grid works differently in
Relative and Absolute sequences.
When editing a Relative sequence, Grid points are separated by a set
number of clocks called the "Grid Size". Clocks are the smallest unit of
resolution in Relative sequences and represent l/l92 quarter note.
When editing Absolute sequences, the smallest unit of resolution is l/4
frame. The number of frames per second depends on the Time Code you are
using. Time Code is set in the Sync menu. The graphic score window can
only show a resolution of single frames visually, but the actual musical
data is recorded and stored in quarter frames. (Example: With SNAP off,
move the current event with the CursorRight key. You will notice that
for every four key presses, the frame number in the T= field will
increase by one).
(See Sequencer Page / Sync Menu / Time Code)
(See Bar Editor / Snap)
(See Bar Editor / T=)
WHAT IS THE DURATION PARAMETER?
The Duration parameter sets up an arbitrary duration that can be used as
a model by other functions in Music-X. For instance, when adding new
note events to a sequence in the Bar Editor, the ADD function uses the
current Duration parameter as the model duration for each new note. Also
when changing the durations of pre-existing events in the sequence, while
SNAP is on, the current Duration parameter is used as model for the
amount of change that can be applied to the durations of the pre-existing
notes.
Clicking GRID opens the SET GRID SIZES window in the Bar Editor.
Depending on the type of sequence currently being edited, one of two
similar windows will appear. Take a look at the Grid requester window
for Absolute sequences below.
*******************************************
* SET GRID SIZES *
*******************************************
* GRID SIZE: *************************** *
* * 0060 * *
* *************************** *
*******************************************
* DURATION: *************************** *
* * 0l20 * *
* *************************** *
*******************************************
* ******** *
* * OK * *
* ******** *
*******************************************
Illustration 7.l0: Grid Requester (Absolute)
In this requester, you will see two identical sliders titled GRID SIZE:
and DURATION:. The sliders range from l to 3600. The sliders are used
to adjust the number of quarter frames for each parameter. Once the
parameters are set correctly, the window may be closed by clicking the OK
button or pressing the "O" key.
(See Bar Editor / Modules Menu / Quantizer Module)
(See Bar Editor / Edit Menu / Auto-Step)
The Grid requester used when editing Relative sequences contains slightly
expanded controls. Besides the two sliders, there are displays of
musical note values including a "dot", and some tuplet numbers. The
sliders represent the number of clocks in the current GRID SIZE: and
DURATION: parameters. They range from l clock to the number of clocks in
one measure. Example: When the Time Signature is 4/4, the sliders range
from l to 768 clocks. The maximum slider range is l to 3072 clocks with
a Time Signature of l6/4.
As you drag either slider, the number written on the slider itself will
change to show
*************************************
* SET GRID SIZES *
*************************************
***************** ***** *************
* * * * * 3 5 7 *
***************** ***** *************
* GRID SIZE:*************************
* * l92 *
* *************************
*************************************
***************** ***** *************
* * * * * *
***************** ***** *************
*************************************
* DURATION:**************************
* * l92 *
* **************************
*************************************
* ******** *
* * OK * *
* ******** *
*************************************
Illustration 7.ll: Grid Requester (Relative)
the number of clocks in the parameter. As the number of clocks increases
or decreases, the closest musical note value will be highlighted in
purple. If the clocks are exactly the correct number for a musical note
value, that note graphic is highlighted in white instead of purple.
You can also click directly on the note values, the dot, and the tuplet
numbers themselves. When you do, the slider moves to the correct number
of clocks in that note value. The tuplet numbers are mutually exclusive.
Clicking on any one of them turns the others off. If you do not want any
tuplets, clicking on the currently highlighted tuplet number turns it
off. The dot is turned on and off by clicking on it as well.
The dot and tuplet numbers work as in normal music theory. Adding a dot
to a note increases its duration to 3/2 of normal. It adds half of the
original value. (Example: A quarter note contains l92 clocks; a dotted
quarter note contains half again as many, 288 clocks.) Triplets (noted
by the number 3) are worth 2/3 normal value. (Example: A quarter note
contains l92 clocks; a quarter note triplet contains l28 clocks.)
Quintuplets (noted by the number 5) are worth 4/5 normal value.
Septuplets (noted by the number 7) are worth 4/7 normal value.
If you want to use other polyrhythms, besides the ones shown in the
requester, you can do so by figuring out how many clocks are in one of
your beats and set it up using the slider.
Example: To set up a custom Grid Size of ll notes per measure of 4/4,
for quantizing or editing:
A whole note (768 clocks) divided by ll notes is 69.82 clocks per note.
Round off 69.82 to 70 clocks.
From within the Bar Editor, click GRID to open the Grid requester. Set
the GRID SIZE: slider to 70 clocks (slightly less than a dotted l6th).
Close the Grid requester by clicking OK.
Turn SNAP on (click it so it is highlighted). Turn ADD on (click it
so it is highlighted), and add a measure of llth notes in the score
window with the mouse to see that the Grid is working.
The Grid can now be used to Quantize as well.
A bit about accumulated errors and error correction: ll notes of 70
clocks each total 770 clocks. Our measure of 4/4 is only 768 clocks.
The next (l2th) Grid point would be 770-768=2 clocks too late. However,
the Grid automatically resets to the beginning of each measure so that
accumulated errors are corrected. The Grid starts again at 768 clocks;
our polyrhythm stays synchronized.
*Note: Polyrhythms that divide evenly into the number of clocks per
measure have no accumulated errors and need no error correction.
PARAMS
("SHIFT-"P" from the keyboard)
This tool word is used to open the PLAY PARAMETERS window where various
parameters governing the way teh sequence is played may be altered. Some
of these parametes are also found in the Sequencer Page but have been
made available here for convenience.
Descriptions of the various parameters available from this window are
listed below.
TEMPO:
At the top of the window is a tempo slider. This slider works exactly
like the tempo slider in the Sequencer page and affects the global tempo
setting used by the sequencer and editors during playback.
This slider can be used to audition a sequence at various tempos during
editing. If you click PLAY before calling the Params window, the
sequence will continue to play while the window is open. You will be
able to adjust the tempo and hear the changes while the sequence is
playing, even though the background screen will temporarily appear frozen
during window access.
*Note: If there are any imbedded tempo events in your sequence they will
take precedence over the global tempo setting shown here.
MEMORY:
To the right of the tempo slider is the MEMORY: readout. This is an
indicator of available free memory. It shows an estimation of the number
of Note events (not bytes) that could still be added to memory before
running out of room. The average Note event uses l0 bytes: 3 to store
the start time, 3 to store the MIDI data for a Note On, 3 to store the
stop time, and l for the release velocity. This readout is the same as
the one found in the Sequencer Page.
(See Sequencer Page / Tempo Window / Memory:)
*Note: This indicator may show a slightly different number than the one
in the Sequencer Page. This is because different amounts of memory
overhead are required by the different pages. The available free memory
actually changes slightly from page to page.
ENABLE SYNC
The ENABLE SYNC switch is used to allow the editors to play along with a
drum machine in the same manner as the Sequencer Page would. This can be
useful for hearing a sequence "in context" using a separately programmed
drum machine with the sequencer.
Playing a sequence from within the editors normally uses the Internal
clock if a Relative sequence (one based on measures, beats, and Clocks)
is being edited, and Video Clock if an Absolute sequence (based on Hours,
Minutes, Seconds, and Frames) is being edited. The ENABLE SYNC switch in
the Params window overides the default setting and enables the use of
MIDI Clocks, MINI Start, MIDI Stop, MIDI Continue, and Song Position
Pointer messages as indicated by the current settings in the Sync menu.
This basically enables the drum machine.
(See Sequencer Page / Sync Menu)
PLAY IN CONTEXT
The PLAY IN CONTEXT switch is used to hear the currently edited sequence
as it will ultimately sound with the rest of the performace. This is
good for listening to see if the edits being made are musically
compatible with the other sequences in memory. When the PLAY IN CONTEXT
button is turned on, the Editor Pages will Play in Context whenever the
PLAY button is clicked. PLAY IN CONTEXT cannot be used when Step
recording.
When playing in context, the entire performance will play as though
playing from the Sequencer Page. The current sequence being edited will
only be heard if self starting (if not turned off in the Sequencer Page)
or if triggered by another sequence using a Play Sequence event. Each
time the current sequence is triggered, or starts by itself, the sequence
will be heard and (if SCROLL is on) the Editor will scroll to show the
portion of the sequence being played.
(See Sequencer Page / Sequence List / <<>> (Offset Arrows))
*Note: If you are using a drum machine as a virtual sequencer (you have
patterns programmed into the drum machine rather than triggering it from
the sequencer) you will also want to use ENABLE SYNC (see above).
START:
Read this as "Start Offset"
The START: slider is used in conjunction with the PLAY IN CONTEXT switch
to let the performance start from different positions. This is similar
to changing the clock positions in the Sequencer Page before clicking
PLAY. If the PLAY IN CONTEXT switch is not on, the START: slider is
ignored.
Normally, when playing in context, the performance starts from the
biginning of the song and continues to the end. This is good for hearing
the whole piece as it will ultimately sound with the currently edited
sequence. However, when editing, you may wish to listen to only a
certain portion of the performance to see how the edits are coming along.
This slider can be used to set the number of measures that will be
skipped past the beginning of the song before starting to play the
performance. The slider ranges from 000 to 500 measures. When the
slider is set at 000 measures this means that no measures will be skipped
and the song will start from the beginning each time PLAY is clicked.
Setting the slider at 00l measures means that one measure will be skipped
before playing the song; the song will start on the second measure.
For example, suppose you are editing a piano sequence containing a solo
that is supposed to occur at the 32nd measure of the song, and you want
to hear what it will sound like with the other sequences. Turn on PLAY
IN CONTEXT, and set the START: slider to 3l measures. When PLAY button
is clicked in the Editor, the song will start playing from the 32nd
measure and the current sequence will play along with it.
REMAP T/S
Read this as "Remap Time Signature".
This switch is used in conjunction with the Time Siganture control (see
below) to change the metric structure of a sequence.
There are two approaches to changing the Time Signature of a prerecorded
sequence.
The first approach is to expand or contract the measure lengths by adding
or subtracting beats from the end of each measure. This is the default
method in Music-X. The advantage to this is that measure integrity is
maintained. In other words, the same notes still occur within the same
measures after the Time Signature change. The disadvantage to this is
that when changing to a smaller measure size, notes at the end of each
measure would seem to clump together.
The second approach is to leave the music alone and simply map a new Time
Signature over the top of it. The music sounds the same but is
structured differently.
The REMAP T/S switch allows you to use the second approach. To remap the
current sequence into a new time signature, turn the REMAP T/S switch on,
then change the Time Signature control (see below) to the desired Time
Signature, then close the Params window by clicking OK.
*Note: When remapping a sequence containing Time Signature Change
events, the REMAP T/S function takes into account the way the music
sounded with the Time Signature Changes in it. After remapping, those
Time Signature Change events are unneeded and sould be manually removed
from the sequence.
TIME SIGNATURE CONTROL
You can change the global time signature with this control, as you would
in the main Sequencer Page. Click on the green arrows to increase or
decrease the numerator or denominator of the Time Signature. This
globally affects all sequences.
*Note: Any TSIG events in the currently playing sequence(s) will overide
the global Time Signature.
(See Sequencer Page / Time Signature Window)
OK
Click here when done, to close the PLAY PARAMETERS window and continue
editing.
REPEAT
(SHIFT-"R" from the keyboard)
The last of the tool words in the Tool List is REPEAT, found directly
below the word PARAMS. REPEAT is an option mode switch, and may be used
with any other mode. REPEAT controls the auto-repeat function of the
graphic score window. Click REPEAT to turn it on and off.
This word is normally turned on (highlighted in white) by default. When
on, it causes the sequence to auto-repeat WHEN IN THE EDITOR ONLY. When
the green Time line reaches the yellow End line during play, the clock
returns to the beginning of the sequence and starts to play it again.
This is usually handy when editing, especially when working on small
looping sections, as when writing drum parts. Conversely, if you are
working near the end of a long sequence, you may wish to turn this off to
prevent the score window from jumping to the beginning when it reaches
the end of the sequence.
*Note: When Playing In Context, the auto-repeat function is defeated to
give true playback.
(See Bar Editor / Params / Play In Context)
*Note: If you want the sequence to repeat when played from the Sequencer
Page, you must Add a Set Repeats event.
(See Bar Editor / Add)
(See Bar Editor / Event Types / Set Repeats)
SEQ:
Reat this as "current sequence number". This indicator is found just
above the PAUSE button, against the lower left edge of the Bar Editor
Page. When you first enter the Bar Editor by clicking EDIT in the
Sequencer Page, the number of the sequence to be edited is written to
this field.
The current sequence number is the sequence that will be overwritten when
you exit the editor and STORE the edit buffer to sequence memory.
(See Bar Editor / File Menu / Exit)
The current sequence can be changed in two ways. Firs, by brining a new
sequence into the editor using SELECT..., in the File menu. Second, by
storing the current sequence to other than the original location using
STORE..., in the FILE menu.
(See Bar Editor / File Menu / Select...)
(See Bar Editor / File Menu / Store...)
T=
This indicator is found just above the transport controls. Think of it
as the "Time equals" indicator.
The T= indicator has five uses. First, it shows the starting time of the
current event when grabbed or dragged. Second, during a paste operation,
when pasting a clip of previously selected events, it shows the starting
time of the first event in the clip as it is being placed in the score.
Third, during a paste operation, when pasting a region of previously
marked time, it shows the point at which the clip will be inserted into
the score while it is being positioned. Fourth, when the sequence is
playing it shows the current clock time. Fifth, when there is no current
event, it shows the time under the mouse pointer.
(See Bar Editor / Options Menu / Paste)
(See Bar Editor / Select)
(See Bar Editor / Mark)
For Relative sequences, this indicator reads out in measures, beats, and
clocks. For Absolute sequences, it reads in hours, minutes, seconds, and
frames.
D=
This indicator, found just above the transport controls and to the right
of the T= indicator, can be thought of as the "Duration equals"
indicator. It is used to display the durations of various things during
editing. In certain cases, it is also used as a transposition indicator.
This indicator has three uses as a duration indicator. First, it shows
the duration of the current event. Second, while in Mark mode, it shows
the duration of a region of time being marked. Third, while in Select
mode, it shows the time inside the Select box as the box is extended.
When being used as a duration indicator, this indicator reads out in
measures, beats, and clocks for Relative sequences, and hours, minutes,
seconds, and frames for Absolute sequences.
During paste operations, this indicator is temporarily used to show the
transposition of the clip when it is being positioned in the score. In
this case it reads out in the number of halfsteps away from the original
key.
(See Bar Editor / Mark)
(See Bar Editor / Select)
(See Bar Editor / Options Menu / Paste)
TRANSPORT CONTROLS
The transport controls in the Bar Editor work similarly to the transport
controls in the Sequencer Page. However, there are no fast forward or or
rewind buttons in the Bar Editor. Instead, the score window itself is
repositioned using a scroll bar. Following are descriptions of the
Transport Controls in the Bar Editor.
***************** ***************** ***************** *************
* PAUSE * * > PLAY * * 0 RECORD * * [] STOP *
***************** ***************** ***************** *************
Illustration 7.l3: Transport Controls.
PAUSE
(SPACE BARfrom the keyboard)
PAUSE is used during playback, currently playing notes are temporarily
held, and finish naturally when PAUSE is released.
If PAUSE is used while recording, the clock stops but the recording
process does not. This feature is used with the STEP button to implement
step recording.
(See Bar Editor / Recording Modes (below)).
PLAY
("P" from the keyboard)
(ESC (Escape key) = All notes off)
(SHIFT-ESC = Super All notes off)
In the Bar Editor, clicking PLAY will locate the clock to the beginning
of the portion of the sequence currently shown in the window and begin
playing from there. In other words, the clock will start at (and the
green Time Line will scroll from) the left edge of the window.
If at anytime during play, a "MIDI stuck-on note" happens, remember that
pressing the Amiga's Escape key (at the upper left corner of the
keyboard) sends a MIDI "All Notes Off" message. Holding the SHIFT key
while pressing the escape key initiates "Super All Notes Off", which
actually sends a MIDI Note Off message for each of the l28 possible notes
on all l6 MIDI channels.
RECORD
("R" from the keyboard)
There are three methods for recording in the Bar Editor: Live Recording,
Step Recording, and Step Recording with Auto-Step. These methods are
discussed in the next subchapter.
***********************************************************
* OK TO ERASE *
* WORK BUFFER? *
* ************ ************* *
* * NO * * YES * *
* ************ ************* *
***********************************************************
Illustration 7.l4: Record Safety Prompt
If the Edit Buffer is not empty when you click the RECORD button, a
safety prompt will come up to prevent accidental erasure. Click NO to
back out safely. Otherwise click YES, or press the RETURN key to begin
recording.
STOP
("S" from the keyboard)
Clicking the STOP button halts the clock and stops any currently playing
notes. Clicking STOP while in record, adds an End event into the
sequence at the current clock position.
RECORDING MODES
There are three ways to record in the Bar Editor: Live recording, Step
recording, and Step recording with Auto-Step. Each method has its
strengths. The three methods are discussed below.
LIVE RECORDING
Live recording in the Bar Editor is basically the same as the recording
process in the Sequencer Page. However, the options have been scaled
down. You cannot Punch-In, there are no Count-In Bars, etc. You
essentially click RECORD and begin playing the mother keyboard. The
snazzy thing about recording live in the Bar Editor is that you can see
the notes appear as they are recorded.
Example: Recording in drum fill sequence from within the editor.
Click PARAMS. Then from within the PLAY PARAMETERS window, turn on the
PLAY IN CONTEXT switch, and drag the START: slider to zero. Click OK to
close the window.
(See Bar Editor / Params / Play in Context)
Turn on SCROLL in the Tool List.
Manually scross the Graphic Score Window to the beginning of the
sequence.
Click RECORD. If the sequence is not currently empty, a safety prompt
will appear to prevent accidental loss. Click NO to back out safely.
Otherwise, click YES, or press the RETURN key to proceed.
The Record Buffer will be emptied, and the editor will begin recording.
Other sequences in memory can be heard playing along since we are using
PLAY IN CONTEXT.
As the parts of the song come up that need drum fills, play the part on
the mother keyboard or MIDI drum pad.
As each note is received, it will appear in the graphic score window.
(Attack and Release velocities are not displayed during recording, to
speed up the display).
When done, click STOP. The sequence may now be edited and eventually
stored.
STEP RECORDING
Step recording allows you to manually control the movement of the clock
during record using the STEP and BACK buttons. That means you can take
as much time as you need while deciding what notes to play next. It also
means you can back up if you make a mistake, and correct it right away
before going on. This can be handy for non-keyboard players. It can
also be handy for recording difficult or impossible parts. For instance,
a moving horn section, with spread voicings in l6th notes.
Step recording is implemented with the help of the PAUSE button, and the
STEP and BACK buttons. The idea is, if PAUSE is clicked before RECORD,
the editor begins recording but the clock does not move. This is the
beginning of manual control of the clock. Once the clock is stopped, you
can take your time about placing your fingers on all the right notes.
The STEP button then comes into the picture to move the clock ahead in
controlled increments. Each time STEP is clicked, the clock moves ahead
by the amount of clocks in the current Grid Size parameter. In other
words, you are stepping along the Grid points, one at a time. By
pressing keys at your leisure, and then advancing the clock, you can put
together music of difficulty beyond your own ability to play.
(See Bar Editor / Grid)
WORKING WITH DURATIONS
Each time a note is pressed or released, that action gets recorded at
the current clock position. If you press and release the same keys at
the same clock position, the new notes will have no duration. The way to
do it is; press and hold a key, advance the clock, then release the key.
The more times you advance the clock while the key is held, the longer
the resulting duration will be.
The BACK button is used if you make a mistake, to erase the last note
played. Each time you click the BACK key, the most recent note is
erased. Clicking BACK repeatedly continues to erase notes. As notes are
erased, the clock is also rewound to the point at which the last erased
note was before it was erased.
*Note: If your mother keyboard is set up away from the Amiga, or you
just find it awkward to use the mouse while recording, a Keymap can be
used to set up one or more notes on the mother keyboard (the bottom or
top notes are usually the andiest) to trigger the Music-X command TIME
STEP which is the equivalent of clicking the STEP button in the Editor
Pages.
(See Keymap Editor / Action List / Music-X Command / Time Step)
Example: Using Step Mode to record a walking bass part.
Use the SET GRID SIZES window to set the Grid Size to quarter notes.
Manually scroll the sequence to the beginning.
Click PAUSE to freeze the clock.
Click RECORD. If the sequence is not currently empty, a safety prompt
will appear to prevent accidental loss. Click NO to back out safely.
Otherwise, click YES or press the RETURN key to proceed.
The Record Buffer will be emptied, and the editor will begin
recording. The clock will not move however, since PAUSE is on.
Click STEP, or press the ")" (right bracket) key, to step the clock
forward by one quarter note. The note now has some duration, and will
appear in the score window.
Release the note on the mother keyboard. We have just recorded a Note
Off on beat two of the sequence, creating a full Note event with a
duration of one quarter note.
Repeat the last three steps for each note in the bass line. (Press the
note, advance the clock, release the note)
To record a rest, advance the clock by clicking STEP, or pressing the ")"
(right bracket) key, without pressing a note.
To record a note with a longer duration than the current Grid Size, press
the note, advance the clock more than once, and release the note.
To record a note of shorter duration than the current Grid Size, open the
SET GRID SIZES window while in record, and set the Grid Size to the
desired duration, then continue recording.
STEP RECORDING WITH AUTO-STEP
Auto-Step mode is enabled by choosing AUTO-STEP from the Edit menu of
the Bar Editor. When the menu item appears checked, Auto-Step mode is
enabled.
(See Bar Editor / Edit Menu / Auto Step)
Auto-Step mode makes it een easier to enter notes when Step recording.
Auto-Step causes the clock to advance forward in increments of the
current Grid Size each time a note is released on the mother keyboard.
This means it is not necessary to click the STEP button each time you
want the clock to move ahead.
Durations are determined in Auto-Step mode using the current Duration
parameter setting, as set in the Grid requester. What happens is, when
you first press a key on the mother keyboard, the beginning of that note
is recorded at the current clock position. When you release the key,
that note is assigned the same duration as the current Duration parameter
set in the Grid requester, and the clock is stepped forward by the amount
of time in the current Grid Size parameter, also set in the Grid
requester. The current Grid and Duration sizes may be different. By
changing the Grid or Duration size while in record mode, one can build a
melody with many complex rhythms.
Example: Using Auto-Step to record a difficult melody:
Make sure Auto-Step is enabled in the Edit menu (the menu item should
appear checked).
Click the tool word GRID to open the Grid requester, and set the Grid
Size and Duration to the value of the first note in the melody. (If you
are going to play sixteenth note, then set both parameters to sixteenth
notes.)
Click the PAUSE button to freeze the clock. It will appear highlighted.
Click RECORD. It will appear highlighted.
If the Edit Buffer is not currently empty, a safety prompt will appear to
prevent accidental loss. Click NO to back out safely. Otherwise, click
YES to proceed.
Press and release the first note in the melody.
The note will appear in the editor, and the clock will move forward.
Open the Grid requester again and set the Grid Size and Duration to the
value of the second note in the melody. (If it is the same value then
you do not need to reset it).
Press and release the second note in the melody.
If you make a mistake, click BACK and play the note again.
Repeat the previous two steps until the melody is finished. Then click
the STOP button to stop recording.
Chords can also be recorded in Auto-Step mode, as long as all the keys of
a chord are depressed before any one of them is released.
Example: Using Auto-Step to record a difficult chord passage.
Make sure Auto-Step is enabled in the EDIT menu (the menu item should
appear checked).
Click the tool word GRID to open the Grid requester, and set the Grid
Size and Duration to sixteenth notes.
Click the PAUSE button to freeze the clock. It will appear
highlighted.
Click RECORD. It will appear highlighted.
If the Edit Buffer is not currently empty, a safety prompt will appear to
prevent accidental loss. Click NO to back out safely. Otherwise, click
YES to proceed.
Press and hold all the notes of the first chord, one by one, until all
the chord is complete. Do not release any notes until the chord is
complete, or the clock will move forward and all the notes will be
terminated.
Release the notes of the first chord. The chord will appear in the
editor, and the clock will move forward.
Use the Grid requester to change the current Grid Size and Duration if
needed.
Press and hold all the notes of the second chord, one by one, until all
the chord is complete.
Release the notes of the second chord. The chord will appear in the
editor, and the clock will move forward.
Repeat the previous three steps until all the chord passage is finished.
Then click the STOP button to stop recording.
CHANNEL SQUARE
At the bottom of the Bar Editor Page is a small matrix consisting of the
numbers l through l6. This is the MIDI Channel Square. It has three
basic functions.
*********************
* 01 * 02 * 03 * 04 *
* 05 * 06 * 07 * 08 *
* 09 * 10 * 11 * 12 *
* 13 * 14 * 15 * 16 *
*********************
Illustration 7.l5: Channel Square
The first function is to indicate and change the MIDI channel number of
the current event. When a new event is grabbed, the channel square will
highlight the channel number that event is on in white. Choosing other
MIDI channels, by clicking on the Channel Square, will change the channel
number for that event.
The second function is to change the MIDI channel numbers of a group of
selected notes. After selecting one or more events with the SELECT
function, click on a channel number in the MIDI channel square. All the
selected events will take on the new MIDI channel assignment.
(See Bar Editor / Select)
The third function of the Channel Square is as a selection tool when
using the LOCK function. When LOCK is highlighted, the channel square is
used to set which channels will be locked out of the display. This can
be handy when editing composite sequences containing events on many MIDI
channels. Locked channels are shown in red in the Channel Square.
Events on a locked channel are heard but not seen. Clicking on a locked
channel in the Channel Square unlocks it.
(See Bar Editor / Select)
STEPANDBACK
(")" from the keyboard)
("(" from the keyboard)
Just to the right of the Channel Square are two buttons labeled STEP and
BACK. These are used during Step recording to advance or rewind the
clock. The editor must be in record mode, with the PAUSE button on.
STEP and BACK are designed to be used during Record only and have no
audible effect during Play or when the clock is stopped.
When STEP is clicked during Step record, the clock will move forward in
increments of the current Grid Size, as set in the GRID requester. For
example if the current Grid Size is set to a sixteenth note the STEP
button will advance the clock by one sixteenth note (48 clocks) each time
it is clicked.
When BACK is clicked during Step record, the last note recorded will be
erased, and the clock will be moved back to the beginning of that note.
If the last note erased is one of multiple Notes with the same start
times, the clock will not be moved back until all of them have been
erased by clicking the BACK button repeatedly. This can be handy during
Step record when adding in the notes of a chord one by one. If you make
a mistake, click BACK to erase only the most recently played note, and
try it again.
Use the Grid requested to set the Grid Size and determine how much the
clock will move each time STEP is clicked.
(See Bar Editor / Grid)
*Note: Using a Keymap, one or more keys on the mother keyboard can be
set up to trigger the Music-X command TIME STEP which is equivalent to
clicking the STEP button. The clock can also be automatically advanced
in response to notes played on the mother keyboard during record, using
AUTO-STEP mode.
(See Keymap Editor / Action List / Music-X Command / Time Step)
(See Bar Editor / Edit Menu / Auto-Step)
(See Bar Editor / Recording Modes / with Auto-Step)
VIRTUALSLIDERS
**********************
NT * 064 *
**********************
AVL * 064 *
**********************
RVL * 064 *
**********************
Illustration 7.l6: Virtual Sliders
In the bottom right corner of the Bar Editor Page are three virtual
sliders. These sliders have a number bar where most sliders have a drag
bar. This means they can be used to both indicate a value, and change
that value.
In the Bar Editor, these sliders are provided to give quick access to
some of the parameters in the current event. Each time a new event is
grabbed, the sliders reconfigure themselves to the parameters of that
kind of event. Their names and ranges change automatically. The basic
process when editing events is to first click on an event, then adjust
the sliders.
(See Bar Editor / Event Types)
Coarse changes in a slider's value are made by grabbing and dragging the
number bar. Fine changes are made by clicking on either side of the
number bar (within the slider's field of travel) to increase or decrease
its value.
*Note: When first entering the Bar Editor, the virtual sliders will
appear dormant (having no associated parameters or names). This is
because they auto-configure to the current event, and since no current
event is chosen, they have nothing to configure to. When there is no
current event, the sliders should be ignored.
GRID:ANDDUR:
These two indicators, found just underneath the virtual sliders, show
the current Grid Size and Duration in clocks (l/92 quarter note), as set
in the Grid Requester. Since these numbers are used constantly by the
software when Adding or Inserting new events or when Quantizing or when
SNAP is on, it is handy to be able to see what they are. These
indicators cannot be changed directly, you must change their values from
within the Grid requester.
(See Bar Editor / Grid)
End.